[英]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.