我正在使用以下代码通过Kerberos进行身份验证。

IntPtr logonToken = WindowsIdentity.GetCurrent().Token;
string authenticationType = "WindowsAuthentication";
WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken, authenticationType);

//windowsIdentity.Name == equals "IIS APPPOOL\Classic .NET AppPool" when I want it to be the user

仅当我尝试在Web服务器上运行.NET应用程序时,才会发生这种情况。如果我在机器上本地运行代码进行调试,它将在Name属性中显示我的用户ID。关于如何使其在Web服务器上工作的任何建议?

最佳答案

您需要enable impersonation in web.config:



当您在本地运行代码进行调试时,您可能正在使用以登录用户身份运行的Web开发服务器,这就是为什么您会在调试中看到正确的用户的原因。

关于c# - 如何设置.NET WindowsAuthentication-当我希望它使用实际用户时,名称始终显示为 "IIS APPPOOL\Classic .NET AppPool",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6061303/

10-11 11:41