簡體   English   中英

MVC 5-通過用戶ID獲取任何用戶名

[英]MVC 5 - Get any username by userid

我有一個MVC 5應用程序,該應用程序具有一組對象,這些對象引用使用從以下項獲得的值創建它們的用戶:

User.Identity.GetUserId();

問題是我需要能夠隨時解析該帳戶的用戶名,以便在查看給定對象時可以將其顯示給用戶。

為了清楚起見:我有一個存儲的對象,其屬性是UserId。 在創建時,我從上述代碼中獲得了該值。 現在,其他人已登錄,需要知道與該存儲對象的用戶標識關聯的用戶名。

如果不查詢您的用戶信息的存儲位置,則無法使用該功能。

您可能會考慮在HTML幫助器中實現該查找,以在任何需要的地方使用它。

如果使用的是OR-Mapper,則應以最初的查詢加入真正的用戶。

使用會話

 Session["Username"] = data.Username;

這是一篇舊文章,但我遇到了與操作員相同的問題。 他在自己的帖子中發表評論,說:

assumed ... Identity framework would have ... quick access ... of doing this

我相信該框架確實具有操作員正在尋找的東西,盡管我不確定它會被稱為快速。

設置UserManager后,可以訪問稱為

FindByName(username)

我在這篇SO C#帖子中使用了答案,以幫助我找到這種方法。 那篇文章解釋了如何走另一條路,即從UserID中獲取UserName,但是一旦設置了UserManager,便可以使用多種Find ...方法,包括上面提到的一種方法,即op在尋找。

可以在vb.net中按以下步驟設置UserManager

Using appDb As New ApplicationDbContext
  Dim userStore = New UserStore(Of ApplicationUser)(appDb)
  Dim myUserManager = New UserManager(Of ApplicationUser)(userStore)
  Dim userID = myUserManager.FindByName(userName)
End Using

我對C#不太了解,無法發布該代碼。 也許其他人可以做到。 無論如何,它為我工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM