我无法想象我的生活.我正在尝试使用以下行获取当前用户登录到Windows的名称:
string user = System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();
Run Code Online (Sandbox Code Playgroud)
当我通过IIS发布并打开它后运行此行时,它给我一个名称"IIS APPPOOL/SiteName".但是,当我通过Visual Studio 2013调试程序运行它时,会出现正确的名称.
我已经摆弄了配置、IIS 设置和字符串...但我认为这一行是我需要使用的:
string user = System.Web.HttpContext.Current.User.Identity.Name;
Run Code Online (Sandbox Code Playgroud)
似乎正在返回一个我可以使用的域/用户名。看起来像是一个替代解决方案。
小智 4
您必须在 ASP.NET 站点上启用 Windows 身份验证/模拟,否则它将在为应用程序池配置的任何帐户的上下文中运行。
https://msdn.microsoft.com/en-us/library/ff647405.aspx
<system.web>
...
<authentication mode="Windows"/>
<identity impersonate="true"/>
...
</system.web>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11586 次 |
| 最近记录: |