【发布时间】:2013-02-13 16:33:49
【问题描述】:
我正在使用自定义身份验证的 asp.net Web 应用程序。我编写了一个快速测试应用程序来发布在我们的网络服务器上,以确保我可以从用户那里获取必要的凭据。我正在尝试使用以下代码行获取当前登录的用户(我以前做过):
string username=System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();
这通常返回格式为“域\用户”的字符串。我得到的是这样的:IIS APPPOOL\ASP.NET v4.0
我确定我遗漏了一些简单的东西,IIS 中是否有需要更改的设置?还是有其他方法来获取用户名?
【问题讨论】:
-
您的 web.config 中有模拟设置吗?
-
@Dillie-O 我目前没有设置模拟。我认为应该禁用它,因为 asp 应用程序将处理身份验证。我确实尝试启用它,并且 NT AUTHORITY\IUSR 已返回给我。
-
由于您使用的是自定义身份验证,您是否有适当的代码来设置 IPrincipal 详细信息?没有它,我相信 Security.Principal 类默认为你所拥有的
-
@Dillie-O 看来这就是我的问题所在!我忘记了在我的测试中为此编码。谢谢!
-
不是问题。我会设置并回答,以便其他人可能会发现它有帮助