我们有一个面向内部的 (C#/MVC/IIS7) 应用程序,要求用户不必输入凭据,但我们需要网络/Windows 用户名来识别当前用户是谁。
有没有办法做到这一点?谢谢!
我们有一个面向内部的 (C#/MVC/IIS7) 应用程序,要求用户不必输入凭据,但我们需要网络/Windows 用户名来识别当前用户是谁。
有没有办法做到这一点?谢谢!
这是一些处理这种事情的代码:
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;