這段代碼是從asp.net的MVC RTM的源代碼誰來制定HttpContext.User.Identity
誰來制定HttpContext.User.Identity的IsAuthenticated屬性的IsAuthenticated屬性?
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);
當我調試asp.net的MVC的LogOn支持方法的代碼上述FormsAuth ...方法調用後的4.0示例項目。執行
User.Identity.IsAuthenticated
仍然返回FALSE。只有當我調試註銷等方法
User.Identity.IsAuthenticated
說TRUE。那麼誰將這個屬性設置爲TRUE和WHEN?
UPDATE:
這是關於表格認證!
我現在調試了asp.net mvc示例項目的LogOn方法,並且在LogOn操作返回後,我調用了我重寫的AuthorizeCore方法,然後IsAuthenticated屬性爲TRUE!
TRUE的設置是否取決於ModelState.Value.Error集合?
如果錯誤集合計數== 0的IsAuthenticated是TRUE 否則IsAuthenticated是假
你能否證實?
沒有源代碼鏈接,但判斷你的其他asp.net mvc解決方案我發現你是專家;-)我喜歡上面的解釋與許多人不理解/發現谷歌搜索在同一主題的幫助後續請求。 – Elisabeth 2011-12-29 09:46:43
@DarinDimitrov如果響應被寫入了正確的cookie,其中包含FormAuthentication憑證,並且驗證成功後。 asp.net將從請求中讀取並解析它。它將確定'IsAuthenticated'是否爲真。任何問題,請糾正我。謝謝。 – 2015-08-13 11:24:13