gpt4 book ai didi

c# - 如何设置 .NET WindowsAuthentication - 当我希望它使用实际用户时,名称总是显示为 "IIS APPPOOL\Classic .NET AppPool"

转载 作者:太空狗 更新时间:2023-10-29 23:26:15 24 4
gpt4 key购买 nike

我正在使用以下代码通过 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 :

To configure ASP.NET to impersonate the Windows identity supplied by IIS as the WindowsIdentity for the ASP.NET application, edit the Web.config file for the application and set the impersonate attribute of the identity configuration element to true, as shown in the following example.

<configuration>
<system.web>
<identity impersonate="true" />
</system.web>
</configuration>

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

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com