簡體   English   中英

User.Identity.Name返回guid

[英]User.Identity.Name returns guid

對於某些(模糊)原因,我的MVC 4應用程序在運行時返回一個guid:

var name = User.Identity.Name;

我也在一個全新的MVC 4應用程序中對此進行了測試,這對我來說是新的行為。 當我查閱有關IIdentity的文檔時,它表明(我記得)Identity.Name應該

獲取當前用戶的名稱。

為什么它會在我的情況下返回一個guid?

來自web.config

<authentication mode="Forms">
    <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>

更多相關信息:該應用程序也部署在另一台計算機上,與同一數據庫通信。 我們在該數據庫中使用“User.Identity.Name”的值,當用戶(新用戶)不在那里時,我們添加一個具有該guid的新用戶。

現在,奇怪的是:當您切換應用程序時(從localhost到部署在T上的應用程序),您需要再次登錄。 然后將User.Identity.Name設置為新的guid。

(使用啟動器默認應用程序我們當然不會與DB通信,但同樣的事情發生; User.Identity.Name返回一個guid)

您需要找到與當前用戶對應的通用主體對象。

using System.Security.Principal;
...

GenericPrincipal genericPrincipal = GetGenericPrincipal();
GenericIdentity principalIdentity = (GenericIdentity)genericPrincipal.Identity;
string fullName = principalIdentity.Name;

暫無
暫無

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

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