ASP.Net标识2,HttpRequestBase.LogonUserIdentity
将ASP.Net Identity 2提供程序模型与普通的ASP.Net标识2,HttpRequestBase.LogonUserIdentity,asp.net,asp.net-mvc,asp.net-identity,Asp.net,Asp.net Mvc,Asp.net Identity,将ASP.Net Identity 2提供程序模型与普通的Authorize属性结合使用 匿名访问为true,Windows身份验证已禁用 HttpRequestBase.IsAuthenticated将返回true,HttpRequestBase.LogonUserIdentity将不会返回实际的ClaimsIdentity,而是一个模拟用户(在本地运行IIS Express时的me) 从提供商处获得的经验证和返回的实际ClaimsIdentity可通过以下方式访问: HttpContext.
Authorize
属性结合使用
匿名访问为true,Windows身份验证已禁用
HttpRequestBase.IsAuthenticated
将返回true,HttpRequestBase.LogonUserIdentity
将不会返回实际的ClaimsIdentity
,而是一个模拟用户(在本地运行IIS Express时的me)
从提供商处获得的经验证和返回的实际ClaimsIdentity
可通过以下方式访问:
HttpContext.Current.User…
和/或System.Threading.Thread.CurrentPrincipal…
问:为什么不通过
HttpRequestBase.LogonUserIdentity
?我第一次看到这个属性被使用时。表示此属性应返回当前用户的WindowsIdentity
。MVC应用程序不知道登录用户的WindowsIdentity
,因为不存在这样的事情
此外,在for中,此属性要求提供服务器变量
我通常通过ClaimsPrincipal.Current
访问当前登录的用户,并且从未见过从HttpRequestBase.LogonUserIdentity
检索到的用户
还有
HttpRequestBase.IsAuthenticated
是调用HttpContext.Current.User.IsAuthenticated
,只需很少的空检查。只需想想名称LogonUserIdentity
就可以暗示“登录用户身份”;-)是的!名称具有误导性,这与IdentityUser.LockoutEnabled
不是当前被锁定用户的标志相同。命名很难,会引起问题。