我们希望在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中获取计算机用户名?
请指导。
答案 0 :(得分:1)
从MVC控制器(实际上继承自System.Web.Mvc.Controller
类)中,您可以访问基础User
中定义的Controller
对象:
string username = this.User.Identity.Name;