asp.net – 如何设置Thread.CurrentPrincipal以在整个应用程序中使用?
|
在ASP.net应用程序中,我正在使用我编写的自定义成员资格提供程序的Login控件.我想要做的是在用户通过身份验证后将Thread.CurrentPrincipal设置为我的自定义Principal对象. 我正在使用setter:Thread.CurrentPrincipal,它为我设置了Principal对象,但是在所有后续线程中,这个CurrentPrincipal被默认值覆盖. 这是我的Login控件的Authenticate事件的代码: protected void Login1_Authenticate(object sender,AuthenticateEventArgs e)
{
string username = Login1.UserName;
string password = Login1.Password;
if (Membership.ValidateUser(username,password))
{
var login = sender as Login;
var phoenixIdentity = new PhoenixIdentity("B","Forms",true);
var principal = new PhoenixPrincipal(phoenixIdentity);
Thread.CurrentPrincipal = principal;
AppDomain.CurrentDomain.SetThreadPrincipal(principal);
HttpContext.Current.User = principal;
e.Authenticated = true;
}
}
例如,假设我使用用户名A登录,一切顺利…验证通过,但我使用Identity对象中的用户名B对用户进行硬编码,该对象设置为我设置为CurrentPrincipal对象的Principal对象. 当我在此方法结束时检查哪个用户设置为CurrentPrincipal Identity时,它表示它是用户B.但是当我加载另一个页面然后检查CurrentPrincipal的标识是什么时,它表示它是用户A. 那么,如何让我的CurrentPrincipal对象在所有其他线程中保持持久性,以及此Login控件何时/何时设置Thread的CurrentPrincipal对象? 解决方法您可以处理FormsAuthentication_OnAuthenticate(对象发送者,FormsAuthenticationEventArgs e)(在Global.asax中)并在此处设置CurrentPrincipal.void FormsAuthentication_OnAuthenticate(object sender,FormsAuthenticationEventArgs e)
{
var phoenixIdentity = new PhoenixIdentity("B",true);
var principal = new PhoenixPrincipal(phoenixIdentity);
e.User = principal;
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 实体框架,MVC 3,LINQ To Entities中的Ord
- asp.net – 服务器随机返回状态码为200的空响应
- asp.net – MvcTextTemplateHost未找到
- asp.net – JQGrid不显示数据
- asp.net – 什么是asp:DropDownList客户端事件?
- asp.net-mvc – ASP.NET MVC – 从URL中删除控制器名称
- 在ASP.NET MVC Core项目中使用View内部的C#7功能
- asp.net-mvc – ASP.NET MVC和Ajax,并发请求?
- asp.net-mvc-3 – 为什么ValidationSummary(true)显示属性错
- 发送电子邮件asp.net c#
- 从Asp.Net MVC 6 API返回JSON错误
- asp.net – 回滚请求身体流
- asp.net-mvc – Elmah基本设置问题/问题
- asp.net-mvc – ASP.NET MVC – Partial View可以
- asp-classic – 如何使用Microsoft.XMLHTTP指定代
- asp.net-mvc-4 – Autofac和ASP .Net MVC 4 Web
- asp.net-mvc-3 – 为什么抛出NULL值异常?
- asp.net-mvc – 如何将名为“file []”的已发布数
- 从ASP.NET应用程序写入IIS日志
- 从ASP.NET MVC返回null时,jQuery post JSON失败
