asp.net-mvc - 用户身份如何?应用程序生命周期中的主体集

标签 asp.net-mvc forms-authentication asp.net-web-api

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

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

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

最佳答案

这是一个related answer .

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

关于asp.net-mvc - 用户身份如何?应用程序生命周期中的主体集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10353068/

相关文章:

asp.net-mvc - 帮助 asp.net mvc 嵌套模型绑定(bind)

asp.net - 如何在 ASP.NET MVC 中存储信息 "per browser tab"?

asp.net-mvc - 在 databasefirst mvc 中使用枚举作为下拉列表

asp.net - 使用 ASP.NET 登录控件时是否可以手动设置身份验证票证?

javascript - 当整个应用程序崩溃时如何通知 FxOS 应用程序

c# - Entity Framework : One to zero relationship

c# - 如何维护网站和虚拟应用程序之间的 .aspxauth session cookie?

asp.net-mvc - 在 Web 层之外获取当前的 Principal

asp.net - 使用 oAuth 和 ASP.NET MVC + WebApi 进行身份验证

c# - 带有 Microsoft.Extensions.DependencyInjection 和 asp.net web api 2 的拦截器,用于横切关注点,例如日志记录