簡體   English   中英

獲取登錄用戶ASP.NET MVC的用戶名

[英]Get username of logon user ASP.NET MVC

我想獲取登錄用戶名和域的用戶名。 獲取它的代碼是在控制器中:

User.Identity.GetUserId()

在我的web.config中是:

<system.web>
    <identity impersonate="false"/>
    <authentication mode="Windows" />
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime />
    <pages controlRenderingCompatibilityVersion="4.0" />
</system.web>

目前,我只得到一個空字符串。 我必須更改以獲取Windows用戶名信息?

其他人的旁注 :在我的研究中,我還得到以下內容:

Environment.UserDomainName +  @"\" + Environment.UserName

參考這個 ,它只傳遞線程運行的身份而不是窗口信息。

編輯1:我目前正在調試模式下測試我的程序。

試試這個

HttpContext.User.Identity.Name

還要確保在web.config中的system.web中有授權標記

<authorization>
  <allow users="?" />
</authorization>

並在IIS中確保您將禁用匿名身份驗證並為同一個應用程序啟用Windows

在此輸入圖像描述

User.Identity.GetUserId()Microsoft.AspNet.Identity的擴展方法。 身份與Windows Auth不兼容(你必須使用其中一個),所以我不確定你在這里做了什么。

一般來說,在Windows Auth中, User.Identity.Name的值將采用{DOMAIN}\\{USER} 因此,如果您想要域名和/或用戶名,您可以將該字符串拆分為\\並獲取您所追求的部分。

說到Identity, User.Identity.Name應該是ApplicationUser.UserName的值,但是根據設置,它可能是ApplicationUser.Email

暫無
暫無

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

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