用户身份如何?在应用程序生命周期中设置的主体

Sha*_*ean 7 asp.net-mvc forms-authentication asp.net-web-api

在ASP.NET(MVC和WebAPI)中,如何使用FormsAuthentication cookie中的数据初始化User Identity对象?

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

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

Joe*_*ger 1

这是一个相关的答案

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