asp.net - 在服务器上获取用户名
我有一个小问题,我有一个应用程序,用于在本地完美工作。认证正在从系统我自己建完成的,它基本上使用的用户名登录的用户,但我遇到了一个问题,因为它是使用服务器的用户名,而不是这是试图给用户的服务器上部署时访问它。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”。我需要子字符串在用户之前删除域名。
使用
User.Identity.Name
,而不是HeadLoginName
功能。
loginName.Text = User.Identity.Name;
谢谢兄弟,你的修复和门诺的工作:) –
你以前用什么代码试图获取用户名?你的用户如何登录?
HttpContext.Current.User.Identity.Name?
我不确定是否会一样拉user's登录名出LoginName将Web控件(我不怀疑),但我建议找到这样做的少走弯路。上面的代码一直为我工作。
Menno
钉它交配,有试图使用的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我更新了我用的是代码的描述,现在不是。 –