-2
我們有一個面向內部的(C#/ MVC/IIS7)應用程序,用戶無需輸入憑據,但我們需要網絡/ Windows用戶名來標識當前用戶是。在沒有Windows身份驗證的情況下獲取用戶的Windows用戶名
有什麼辦法可以做到這一點?謝謝!
我們有一個面向內部的(C#/ MVC/IIS7)應用程序,用戶無需輸入憑據,但我們需要網絡/ Windows用戶名來標識當前用戶是。在沒有Windows身份驗證的情況下獲取用戶的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;
}
}
爲什麼downvotes?比較合理的問題要問。 –