C# 获取用户';没有Windows身份验证的Windows用户名
我们有一个面向内部(C#/MVC/IIS7)的应用程序,要求用户不必输入凭据,但我们需要网络/Windows用户名来识别当前用户C# 获取用户';没有Windows身份验证的Windows用户名,c#,asp.net-mvc,iis-7,windows-authentication,asp.net-authorization,C#,Asp.net Mvc,Iis 7,Windows Authentication,Asp.net Authorization,我们有一个面向内部(C#/MVC/IIS7)的应用程序,要求用户不必输入凭据,但我们需要网络/Windows用户名来识别当前用户 有没有办法做到这一点?谢谢 下面是一些处理此类问题的代码: public class WindowsIdentityHelper { public WindowsPrincipal GetWindowsPrincipal() { //Get Current AppDomain AppDomain myDomain = T
有没有办法做到这一点?谢谢 下面是一些处理此类问题的代码:
public class WindowsIdentityHelper
{
public WindowsPrincipal GetWindowsPrincipal()
{
//Get Current AppDomain
AppDomain myDomain = Thread.GetDomain();
myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
return (WindowsPrincipal)Thread.CurrentPrincipal;
}
public bool IsUserBelongsToWindowsAdministratorGroup()
{
WindowsPrincipal myPrincipal = GetWindowsPrincipal();
if (myPrincipal.IsInRole("Administrators"))
return true;
if (myPrincipal.IsInRole(WindowsBuiltInRole.Administrator))
return true;
else
return false;
}
public string GetFullDomainLoginUserName()
{
WindowsPrincipal myPrincipal = GetWindowsPrincipal();
return myPrincipal.Identity.Name.ToString();
}
public string GetLoginUserName()
{
string authenticatedUser = string.Empty;
string userName = GetFullDomainLoginUserName();
if (userName.Contains("\\"))
authenticatedUser = userName.Split('\\')[1];
else
authenticatedUser = userName;
return authenticatedUser;
}
}
这对我很有用(ASP.NET C#):
为什么会有反对票?问一个相对合理的问题。
string username = Request.LogonUserIdentity.Name;