簡體   English   中英

asp.NET - 在服務器上獲取用戶名

[英]asp.NET - Get Username while on the Server

我有一個小問題,我有一個應用程序,曾經在本地完美工作。 身份驗證是從我自己構建的系統完成的,它基本上是使用登錄用戶的用戶名,但是在服務器上部署時遇到了問題,因為它使用的是服務器用戶名而不是用戶試圖訪問它。

這是正在運行的代碼,但現在它不在服務器上:

    public static string GetUser()
    {
        WindowsIdentity curIdentity = WindowsIdentity.GetCurrent();
        WindowsPrincipal myPrincipal = new WindowsPrincipal(curIdentity);
        return curIdentity.Name;
    }

但是我可以看到這段代碼:

     <LoggedInTemplate>
        <span class="alignLeft">
           <asp:LoginName ID="HeadLoginName" runat="server"/>
        </span>
        <span class="alignRight">
           <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="~/Logout.aspx"/>
        </span>
     </LoggedInTemplate>

,仍然用於良好的用戶登錄而不是服務器。 我現在正試圖獲得該用戶的價值,但我遇到了問題。

我需要做的就是把它放在一個字符串中。

loginName.Text = HeadLoginName.ToString().Substring(6);

這只返回:“。Web.UI.WebControls.LoginName”。 我需要子字符串來刪除用戶之前的域名。

采用

User.Identity.Name

而不是HeadLoginName函數。

loginName.Text = User.Identity.Name;

您之前使用了什么代碼來嘗試獲取用戶名? 您的用戶如何登錄?

HttpContext.Current.User.Identity.Name?

我不確定你是否可以從LoginName網頁控件中取出用戶的登錄名(我懷疑沒有),但我建議找一個不那么迂回的方法。 上面的代碼一直對我有用。

門諾

暫無
暫無

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

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