加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 06:51:22 所属栏目:asp.Net 来源:网络整理
导读:我正在使用FormsAuthentication用于ASP.NET站点,该站点具有显示当前登录用户的主页,Page.User.Identity.Name. 他们可以在他们的设置中更改他们的用户名,当这样做时,我会为他们更新他们的cookie,这样他们就不必签回/用回发签到. FormsAuthentication.SignOut(
我正在使用FormsAuthentication用于ASP.NET站点,该站点具有显示当前登录用户的主页,Page.User.Identity.Name.

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

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

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

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

解决方法

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读