Я перенаправляю своих пользователей на этот ActionResult, когда они нажимают логин и аутентифицируются. Это приводит их к этому методу:HttpContext.User.Identity.Name is Blank inside [Авторизовать]
[Authorize]
private ActionResult RouteRegistrationStep()
{
Debug.Print(HttpContext.User.Identity.IsAuthenticated.ToString()); // false
Debug.Print(HttpContext.User.Identity.Name); // blank
return RedirectToAction("ContactInfo", "Adjuster");
}
Как есть HttpContext.User.Identity.IsAuthenticated.ToString()
false? И, если это неверно, почему атрибут [Authorize]
позволил ему в методе начать?
Edit:
Это метод, который Войти перенаправляет их RouteRegistrationStep()
:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid && db.Users.Where(x => x.username == model.username
&& x.password == EncryptPassword(model.password)).Count() > 0)
{
FormsAuthentication.SetAuthCookie(model.username, model.RememberMe);
return RedirectToLocal(returnUrl);
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}
[Authorize]
private ActionResult RedirectToLocal(string returnUrl)
{
if (Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RouteRegistrationStep();
}
}
'[Авторизоваться]' не относится к методам, которые вы называете собой AFAIK. –
@MartinSmith Это интересно. Предлагаете ли вы использовать свойство класса для хранения моего имени пользователя, а не с помощью 'httpcontext'? – user1477388