gpt4 book ai didi

asp.net - 自定义主体在新请求时恢复为 GenericPrincipal

转载 作者:行者123 更新时间:2023-12-05 00:39:00 24 4
gpt4 key购买 nike

我正在尝试在 .NET MVC 网站中实现自定义主体和自定义标识。我创建了一个继承自 IPrincipal 的自定义主体类和一个继承自 IIdentity 的自定义身份。

当用户登录时,我将 Thread.CurrentPrincipal 和 HttpContext.Current.User 都设置为我的自定义主体。当我通过调试器查看时,值是使用所有属性设置的。

但是,一旦请求完成并且我尝试请求任何其他页面,Thread.CurrentPrincipal 和 HttpContext.Current.User 的类型都是 System.Security.Principal.GenericPrincipal 而不是我的自定义主体。

我需要做任何“额外”的事情来让我的自定义主体脱离线程或 HttpContext 吗?

谢谢

最佳答案

Thread.CurrentPrincipal 中的值和 HttpContext.Current.User不会在请求之间持久化,它们会在每个请求上重建。最好的地方可能是 Global.asax;用原型(prototype)写一个函数:

void Application_PostAuthenticateRequest(object sender, EventArgs e)

这应该在用户对每个请求进行身份验证后调用,这将允许您根据需要设置主体。

关于asp.net - 自定义主体在新请求时恢复为 GenericPrincipal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4889244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com