我希望每当用户登录时,都能显示全名。目前,我需要一个我工作的自定义代码,因为我没有使用身份方法获取用户登录的用户名。
每当我尝试使用提供的链接时,它要么返回一个空的错误,要么在它登录后什么也不显示。
我已经使用了以下链接。https:/www.codeproject.comTips991663Displaying-User-Full-Name-instead-of-User-Email-in
public class ApplicationBaseController : Controller
{
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (User != null)
{
var context = new mymodel();
var username = User.Identity.Name;
if (!string.IsNullOrEmpty(username))
{
var user = context.Users.SingleOrDefault(u => u.FirstName == username);
string fullName = string.Concat(new string[] { user.FirstName, " ", user.LastName });
ViewData.Add("FullName", fullName);
}
}
base.OnActionExecuted(filterContext);
}
public ApplicationBaseController()
{ }
}
<authentication mode="Forms">
<forms cookieless="UseCookies" loginUrl="~/Account/Sigin" slidingExpiration="true"></forms>
</authentication>
更好的方法是至少实现某种ID系统来引用用户的内部,看起来是某种User类。
砖石 解释得很好,你会很容易很快遇到重复的名字和用户名。一个常见的处理方法是给用户附加一个ID。这样一来,你可以拥有多个相同的名字,因为你只是用一个ID来代替引用他们。
你的lambda表达式最终会变成这样。u => u.ID == passedInID