当前位置:  开发笔记 > 后端 > 正文

以编程方式刷新/更新HttpContext.User

如何解决《以编程方式刷新/更新HttpContext.User》经验,为你挑选了1个好方法。

我正在使用FormsAuthentication用于ASP.NET站点,该站点具有显示当前登录用户的主页,Page.User.Identity.Name.

他们可以在他们的设置中更改他们的用户名,当这样做时,我会为他们更新他们的cookie,这样他们就不必签回/用回发签到.

FormsAuthentication.SignOut();
FormsAuthentication.SetAuthCookie(username, false);

我可能非常挑剔,但在他们更改用户名后,母版页仍会显示其原始用户名,直到他们重新加载或加载不同的页面.

有没有办法以编程方式更新当前的Page.User,以便在同一回发期间显示他们的新用户名?



1> John Rasch..:

虽然MasterMax的建议是我要做的,但你可以实际更新Page.User通道HttpContext.Current.User.

如果您知道用户的角色(或者您没有使用基于角色的授权),则可以利用System.Security.Principal.GenericPrincipal该类:

string newUsername = "New Username";
string[] roles = new string[] {"Role1", "Role2"};

HttpContext.Current.User = 
   new GenericPrincipal(new GenericIdentity(newUserName), roles);

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有