Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.Net标识2,HttpRequestBase.LogonUserIdentity_Asp.net_Asp.net Mvc_Asp.net Identity - Fatal编程技术网

ASP.Net标识2,HttpRequestBase.LogonUserIdentity

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.

将ASP.Net Identity 2提供程序模型与普通的
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
不是当前被锁定用户的标志相同。命名很难,会引起问题。