我正在嘗試使用基本表單身份驗證實現ASP.NET MVC5應用程序。 所以有我的登錄方法:401即使在FormsAuthentication.SetAuthCookie()後仍未授權
[HttpPost]
[AllowAnonymous]
public ActionResult Login(string email, string password, bool? rememberMe)
{
if (email.IsNullOrWhiteSpace() || password.IsNullOrWhiteSpace())
{
return RedirectToAction("Index");
}
UserEntity user = new UserEntity() {Email = email, PasswordHash = password};
var userFromDb = _userService.FindUser(user);
if (userFromDb != null)
{
FormsAuthentication.SetAuthCookie(userFromDb.Name, rememberMe.GetValueOrDefault());
var a = HttpContext.User.Identity.IsAuthenticated; //This is still false for some reson
return RedirectToAction("Index", "User");
}
return RedirectToAction("Index");
}
但在重定向這種方法後馬上給的我401 Unauthorized
錯誤。 也似乎像HttpContext.User.Identity.IsAuthenticated是錯誤的。
你有什麼想法/建議爲什麼它是這樣的,以及如何解決它?
UPD:我也有一條線webconfig概念從權威性,所以這不是一個理由
<authentication mode="Forms"> <forms loginUrl="~/Login/Index" /> </authentication>
這是因爲默認情況下MVC5不使用FormsAuthentication。它使用ASP.NET標識,因此它將刪除默認模板中的FormsAuthentication。當你替換它時,你沒有重新啓用FormsAuth。 – 2015-01-21 16:50:53