Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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 mvc 在应用程序生命周期中,如何设置用户标识|主体_Asp.net Mvc_Forms Authentication_Asp.net Web Api - Fatal编程技术网

Asp.net mvc 在应用程序生命周期中,如何设置用户标识|主体

Asp.net mvc 在应用程序生命周期中,如何设置用户标识|主体,asp.net-mvc,forms-authentication,asp.net-web-api,Asp.net Mvc,Forms Authentication,Asp.net Web Api,在ASP.NET(MVC和WebAPI)中,如何使用FormsAuthenticationCookie中的数据初始化用户标识对象 我想做的是使用两种类型的身份验证,基于cookie的身份验证和基于自定义头的身份验证。由于AuthorizeAttribute类只检查User.Identity.IsAuthorized()方法,并且不使用特定于FormsAuthentication的代码,因此这意味着我所要做的就是手动设置User.Identity对象,无论是在global.asax还是在Deleg

在ASP.NET(MVC和WebAPI)中,如何使用FormsAuthenticationCookie中的数据初始化用户标识对象

我想做的是使用两种类型的身份验证,基于cookie的身份验证和基于自定义头的身份验证。由于
AuthorizeAttribute
类只检查
User.Identity.IsAuthorized()
方法,并且不使用特定于FormsAuthentication的代码,因此这意味着我所要做的就是手动设置
User.Identity
对象,无论是在global.asax还是在DelegatingHandler中

那么,如何设置User.Identity?框架如何使用FormsAuthentication自动设置它?

下面是一个示例


标识可以在处理程序、模块或Global.asax中设置。您可以在请求生命周期的任何时候对其进行修改,但通常最好在PostAuthenticateRequest中进行修改。此时,FormsAuthentication已经完成了它的工作,您可以扩充或替换HttpContext.Current.User。

ASP.NET MVC控制器有一个,但Web API没有。它当前正在被放入。

我可以做:
HttpContext.Current.User
@Lolcoder这不太好。这是过去静态/线程存储区的遗留问题。它不能进行单元测试。所以根据Aliostad所说的,一旦我设置了身份,如果他们添加了
User.Controller
,身份就会传递给我吗?