Этот код взят из исходного кода asp.net mvc RTM
Кто устанавливает свойство IsAuthenticated HttpContext.User.Identity?
protected virtual bool AuthorizeCore(HttpContextBase httpContext) {
if (httpContext == null) {
throw new ArgumentNullException("httpContext");
}
IPrincipal user = httpContext.User;
if (!user.Identity.IsAuthenticated) {
return false;
}
}
Является ли свойство IsAuthenticated установленным путем вызова метода (пример проекта asp.net mvc 4.0):
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
Когда я отлаживаю код метода LogOn примера проекта asp.net mvc 4.0 после вышеуказанного вызова метода FormsAuth .... Исполнение
User.Identity.IsAuthenticated
все еще возвращает FALSE. Только когда я отлаживаю LogOff метод
User.Identity.IsAuthenticated
говорит ИСТИНА. Так кто же устанавливает это свойство в TRUE и WHEN?
UPDATE
Это примерно ФОРМЫ аутентификация!
Теперь я отладил метод LogOn примера проекта asp.net mvc, и после того, как было возвращено действие LogOn, вызывается мой метод AuthorizeCore, который я переопределил, а затем свойство IsAuthenticated имеет значение TRUE!
Может ли значение TRUE зависеть от коллекций ModelState.Value.Error?
Если count == 0 в коллекциях ошибок, IsAuthenticated имеет значение TRUE
иначе IsAuthenticated - ЛОЖЬ
Вы можете это подтвердить?