2017-07-24 50 views
0

我试图在用户更改他或更新导航栏中的用户名(使用ASP.NET,MVC,C#)这里是登录时的用户名。所以显示的是用户名,但是当它改变时,旧的用户名仍然显示在导航栏中,直到用户停止并重新登录。用户名发生变化后,在导航栏中刷新用户名(使用Asp.Net,MVC和C#)

剂量任何人都知道如何以良好的方式在导航栏中显示新的用户名?

这是导航栏怎么看起来像一个短版:

<nav class="navbar navbar-default navbar-fixed-top"> 
@if (Request.IsAuthenticated) 
{ 
    @Html.AntiForgeryToken() 
    <a href='@Url.Action("Index", "Manage")'>@User.Identity.GetUserName()</a> 
} 
</nav> 

及以下的短版新用户名/电子邮件的更新方式:

aspUser.UserName = model.Email; 
aspUser.Email = model.Email; 
var result = await UserManager.UpdateAsync(aspUser); 

if (result.Succeeded) 
// Want to update the navbar, maybe here? 

(电子邮件和用户名是同样的东西在这个应用程序)

+0

可能[重复](https://stackoverflow.com/questions/21748731/change-username-in-mvc-5)... –

+1

正如您所说,您需要注销并使用此请求登录用户运行'await SignInAsync(user,true);'以编程方式登录新的用户名。 –

+0

@PeterSchneider相似但不相同。我可以保存新的用户名和电子邮件。 但是,我的问题在于在导航栏中显示新的用户名。现在,旧的用户名仍然显示在导航栏中。 – Mikael

回答

0

为了用户名后更改自动登录用户需要运行SingInAsync方法根据我的意见你的问题。 await SignInManager.SignInAsync(aspUser, true, true);

相关问题