Отображать имя пользователя вместо имени пользователя в приветственном приветствии приложения VB Web Form - PullRequest
2 голосов
/ 08 июня 2019

Стандартный шаблон приложения Visual Basic для веб-форм в Visual Studio 2017 отображает приветственное сообщение с отображаемым полем UserName (т. Е. «Hello, abc@123.com»).Мне нужно отобразить его с отображенным полем FirstName (т. Е. «Привет, Джон).

Есть множество других сообщений по этому поводу, но ни одна из них не решила мою проблему. Я добавил свойство FirstName к моделям identityVB-файл выглядит следующим образом:

Private FName As String
    Public Property FirstName() As String
        Get
            Return FName
        End Get
        Set(ByVal value As String)
            FName = value
        End Set
    End Property

Однако свойство FirstName, по-видимому, не отображается в файле sitemaster.aspx. Я также пытался использовать FName с теми же результатами.

В настоящее времяв файле sitemaster.aspx имя пользователя отображается следующим образом:

<li>
<a runat="server" href="~/Account/Manage" title="Manage your account">Hello, <%: Context.User.Identity.GetUserName()  %>!</a>
</li>

Мне нужно что-то вроде

<li>
<a runat="server" href="~/Account/Manage" title="Manage your account">Hello, <%: Context.User.Identity.GetFirstName()  %>!</a>
</li>

, но часть «GetFirstName» не работает.Я предполагаю, что GetUserName является предопределенным методом, и мне нужно иметь возможность предопределить новый метод, который возвращает поле FirstName вместо поля UserName.

1 Ответ

1 голос
/ 08 июня 2019

Когда пользователь входит в систему, вы можете отобразить информацию профиля, выполнив следующие действия:

  1. Добавьте функцию в коде после Site.Master, чтобы получить объект User:
Protected Function Get_Current_User() As ApplicationUser
    Dim manager = New UserManager(Of ApplicationUser)(New UserStore(Of ApplicationUser)(New ApplicationDbContext()))
    Dim currentUser = manager.FindById(Context.User.Identity.GetUserId())
    Return currentUser
End Function
Вызовите его в вашей разметке:
<li>
    <a runat="server" href="~/Account/Manage" title="Manage your account">
        Hello, <%: Get_Current_User().FirstName  %>!
    </a>
</li>

Для работы приведенного выше кода вам необходим следующий импорт:

Imports Microsoft.AspNet.Identity
Imports Microsoft.AspNet.Identity.EntityFramework

В качестве ссылки, вот статья, котораяхорошо описывает (в C #):

Настройка информации профиля в ASP.NET Identity в шаблонах VS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...