所以我的用戶仍然應該使用他們的電子郵件地址登錄,但我想我的頂級菜單通過他們的名字來迎接他們。我已經實施了這個名字,我只需要一種方法來展示它。Asp.net Identity MVC,如何在_Layout中登錄用戶名。 User.Identity.Name給我發電子郵件
目前我在我的頂級菜單中有這個。
Logged in as @User.Identity.Name
這讓我AppUser.EmailAddress,但我需要的AppUser.Name
這是我的登陸行動,目前它僅包含從loginviewmodel(電子郵件,密碼,與rememberMe)數據。
public async Task<IActionResult> Login(LoginViewModel login, string returnUrl = null)
{
if (!ModelState.IsValid)
{
return View(login);
}
var result = await _signInManager.PasswordSignInAsync(
login.EmailAddress,
login.Password,
login.RememberMe, false);
if (!result.Succeeded)
{
ViewBag.Succeeded = false;
return View(login);
}
if (string.IsNullOrWhiteSpace(returnUrl))
{
return RedirectToAction("Index", "Home");
}
return Redirect(returnUrl);
該名稱存在於我的AppUser類和RegisterViewModel中,由註冊操作使用。
我使用的身份3.0.0,但我歡迎解決它在其它版本的方式,
使用數據庫中的電子郵件地址加載它們的名稱並顯示 – CRice
不要命中數據庫 - ASP.NET身份使用聲明,並且存在特定的聲明m類型爲GivenName和Surname。用戶登錄時,設置這些聲明值並使用擴展方法顯示該值。有關詳細信息,請參閱我的答案:http://stackoverflow.com/questions/31974228/can-you-extend-httpcontext-current-user-identity-properties/31976327#31976327 –
謝謝,我會查看它一旦找到時間。 – user3621898