Мой помощник в представлении, который предназначен для отображения полного имени пользователя, зарегистрированного в приложении, и имя пользователя, если он зарегистрирован через стороннюю аутентификацию.
@using MyApp.Models;
@helper GetUserName()
{
if (User.Identity.AuthenticationType == "Application")
{
using (var db = new MyAppDbContext())
{
@db.Users.Find(User.Identity.GetUserId()).FullName
}
}
else
{
@User.Identity.GetUserName()
}
}
Затем я использую этот помощник:
@if (Request.IsAuthenticated)
{
using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm", @class = "navbar-form pull-right" }))
{
@Html.AntiForgeryToken()
<ul class="nav">
<li>
@Html.ActionLink("Hello " + GetUserName() + "!", "Manage", "Account", routeValues: null, htmlAttributes: new { title = "Manage" })
</li>
<li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li>
</ul>
}
}
Название моего пользователь Proba234, и он показывает, как это:
Почему эти странные символы (<$G+$>
) появляются, и как избавиться от них?
Является ли 'User.Identity.GetUserName()' метод расширения? –
См. Http://stackoverflow.com/a/18451374/2270404 относительно 'User.Identity.GetUserName()' –