将ASP.Net Identity 2提供程序模型与普通Authorize
属性结合使用。
匿名访问为true,禁用Windows身份验证。
HttpRequestBase.IsAuthenticated
将返回true,但HttpRequestBase.LogonUserIdentity
将不会返回实际的ClaimsIdentity
,而是模仿用户(因为我在本地运行IIS Express)。< / p>
来自提供者的实际经过身份验证和返回的ClaimsIdentity
可通过例如
HttpContext.Current.User...
和/或System.Threading.Thread.CurrentPrincipal...
问:为什么不通过HttpRequestBase.LogonUserIdentity
?
答案 0 :(得分:0)
我第一次看到这个属性被使用了。 documentation表示此属性应返回当前用户的WindowsIdentity
。 MVC应用程序不知道登录用户的WindowsIdentity
,因为没有这样的东西。
同样在source code中,此属性eventually会询问服务器变量。
我通常会通过ClaimsPrincipal.Current
访问当前登录的用户,并且从未见过从HttpRequestBase.LogonUserIdentity
检索到的用户。
HttpRequestBase.IsAuthenticated
HttpContext.Current.User.IsAuthenticated
identical调用{{1}}并且几乎没有空检查。