如何获取Windows用户名

时间:2015-01-07 15:16:25

标签: asp.net windows c#-4.0

我们希望在IIS中托管应用程序。我们的应用程序将由Intranet用户使用。

我们的主要要求是内网用户不应该使用Windows提示符。所以我们没有使用Windows身份验证。 我们使用表单身份验证和活动目录授权。但是我们没有登录用户名。(登录机器的Windows用户名)

第一种方法 - 几个代码,如 - " System.Security.Principal.WindowsIdentity.GetCurrent().Name" - 什么时候不给用户名 在IIS中托管。

第二种方法 - 下面的代码通过Visual Studio

给我用户名
    RegistryKey processor_key = Registry.CurrentUser.OpenSubKey(@"Volatile Environment");
    if (processor_key != null)
    {
        if (processor_key.GetValue("USERNAME") != null)
        {
            Console.WriteLine("Language: {0}", processor_key.GetValue("USERNAME").ToString());
            string username = processor_key.GetValue("USERNAME").ToString();
            txtUsername.Text = username;
        }

    }

但是当我在IIS中托管这个网站时。 我没有得到用户名。

没有使用Windows身份验证有没有办法在IIS中获取计算机用户名?

请指导。

1 个答案:

答案 0 :(得分:1)

从MVC控制器(实际上继承自System.Web.Mvc.Controller类)中,您可以访问基础User中定义的Controller对象:

string username = this.User.Identity.Name;