將ASP.Net Identity 2提供程序模型與普通Authorize
屬性結合使用。ASP.Net Identity 2,HttpRequestBase.LogonUserIdentity
匿名訪問爲真,Windows身份驗證被禁用。
HttpRequestBase.IsAuthenticated
將返回true,但HttpRequestBase.LogonUserIdentity
不會返回實際的ClaimsIdentity
,而是返回一個模擬用戶(因爲我在本地運行IIS Express)。
來自提供者的實際認證並返回的ClaimsIdentity
可通過例如
HttpContext.Current.User...
和/或System.Threading.Thread.CurrentPrincipal...
問:爲什麼不通過HttpRequestBase.LogonUserIdentity
?
試想一下'LogonUserIdentity'這個名字就暗示着「用戶身份認同」;-) – Daniel 2014-08-29 10:03:46
它的確如此!名稱具有誤導性,同樣的方式'IdentityUser.LockoutEnabled'不是用戶當前被鎖定的標誌。命名很難並導致問題。 – trailmax 2014-08-29 10:05:31