C# 获取用户';没有Windows身份验证的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

我们有一个面向内部(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;