Я использую шаблон проекта ASP.NET MVC 5 по умолчанию ASP.NET 4.5. Он настроен с учетом подлинности.Как аутентифицировать пользователя в среде ASP.NET Identity?
Я хочу использовать Active Directory окна с моим проектом, я последовал за эту статью - http://www.schiffhauer.com/mvc-5-and-active-directory-authentication/
И в методе входа моего AccountController, я есть
if (Membership.ValidateUser(model.Email, model.Password))
{
CustomFormsAuthentication.SetAuthenticationCookie(model.Email, model, model.RememberMe);
return RedirectToAction("Index", "Home");
}
Где класс CustomFormsAuthentication имеет
public static class CustomFormsAuthentication
{
public static void SetAuthenticationCookie(string username, object obj, bool isPersistent)
{
const int version = 1;
var json = new JavaScriptSerializer().Serialize(obj);
var cookieStoreTime = isPersistent ? DateTime.Now.AddDays(7): DateTime.Now.AddDays(1);
var ticket = new FormsAuthenticationTicket(version, username, DateTime.Now, cookieStoreTime, isPersistent, json);
HttpContext.Current.Response.Cookies.Set(new HttpCookie(FormsAuthentication.FormsCookieName,
FormsAuthentication.Encrypt(ticket)) {Expires = cookieStoreTime});
}
}
Но пользователь никогда не аутентифицирован. Пользователь User.Identity.IsAuthenticated все еще показывает false.
Как это сделать?
Не [полностью верно] (http://stackoverflow.com/questions/2250921/mixing-forms-authentication-with-windows-authentication). Вы можете одновременно запускать вход в Windows и AD, просто берет некоторую изящество. Вам также понадобится реализовать свой собственный механизм входа, наблюдая за «LOGON_USER». Кроме того, вы можете создать свое собственное промежуточное ПО Owin, которое попытается выполнить рукопожатие. –
У меня есть два типа логина. Один из них - это вход в систему windows, а другой - это sql login. – Yasser
@BradChristie. Хотя да, вы можете это сделать .. это уже не поддерживаемый сценарий в IIS или ASP.NET. Он может быть взломан, но его уродливый и, вероятно, склонный к большему сбою в будущем ... –