我有一個小問題,我有一個應用程序,用於在本地完美工作。認證正在從系統我自己建完成的,它基本上使用的用戶名登錄的用戶,但我遇到了一個問題,因爲它是使用服務器的用戶名,而不是這是試圖給用戶的服務器上部署時訪問它。asp.net - 在服務器上獲取用戶名
這是正在工作的代碼,但現在不是在服務器上:
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」。我需要子字符串在用戶之前刪除域名。
也許我誤解了,但它聽起來像你在本地使用asp.net會員身份驗證,並且服務器啓用了Windows身份驗證? – AndrewC
爲什麼不從HttpContext獲取用戶名?更多http://stackoverflow.com/questions/1574554/how-to-utilize-asp-net-current-user-name-in-sqlparameter-without-code-behind。 –
@AndyC我更新了我用的是代碼的描述,現在不是。 –