我有一个使用ASP.NET forms身份验证的ASP.NET 3.5应用程序。当在页面中编辑数据时,我希望能够获得当前登录到计算机的Windows用户名(不是登录到ASP.NET应用程序,而是登录到Windows)。
如果我使用Context.User.Identity.Name.Tostring()
,我将获得登录到ASP.NET应用程序的用户名,但我需要Windows帐户名。
System.Security.Principal.WindowsIdentity.GetCurrent().Name.Tostring()
此外,只有当我从Visual Studio运行网站时,它才能工作,但在部署到IIS后,它返回NT AUTHORITY\SYSTEM。
发布于 2013-04-24 14:26:14
您必须在配置中将身份验证模式设置为Windows
,并在authorization标记中禁用匿名用户。
发布于 2013-04-24 14:24:46
要让当前登录的用户登录到Windows帐户,您必须使用Windows authentication
而不是Forms authentication
只有当我从visual studio运行网站时,IIS System.Security.Principal.WindowsIdentity.GetCurrent().Name.Tostring()才能工作,但在部署到
后,它会返回NT AUTHORITY\SYSTEM
它显示应用程序的当前用户。当您在Visual Studio web服务器上承载应用程序时,它将使用您的本地帐户。但是,当您使用不同的凭据登录到web应用程序时,它将始终显示您当前的Windows登录。
在本例中,部署到IIS的应用程序使用NT AUTHORITY\SYSTEM帐户。
发布于 2016-03-29 20:23:34
要使当前登录的用户进入C#中的窗口,请使用:
string Username = System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();
https://stackoverflow.com/questions/16184685
复制相似问题