繁体   English   中英

Windows IIS 中的身份验证问题

[英]Windows Authentication problems in IIS

我在 C# 和 ASP.NET 工作,制作具有集成安全性的基于 Web 的数据库应用程序,以便 Windows 用户用于访问数据库。 当我在 Visual Studio 的 IIS Express 中运行应用程序时,一切都很好。 当我在 IIS 下发布网页时,我遇到了 Windows 身份验证问题。

在 IIS Express 中,以下两行代码生成与当前登录用户对应的相同 Windows 用户名,这也是我想要的:

string user = Page.User.Identity.Name;
string loginName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

但在 IIS 中的已发布形式中,第二行给出了不同的用户:IIS APPPOOL\"the-name-of-my-Visual-Studio-solution"。 此用户对数据库没有任何权限,因此应用程序出现故障。

我在 web.config 中启用了 Windows 身份验证:

<authentication mode="Windows" />
    <identity impersonate ="false" />
    <authorization>
      <deny users="?" />
    </authorization>

在 IIS 中,使用了以下设置(见下图):

IIS 认证设置

这是应用程序池设置:

IIS 应用程序池设置

谁能告诉我在哪里寻找问题? 提前致谢。

试试这些代码:

string UserName = HttpContext.Current.User.Identity.Name;
string UserName = Request.LogonUserIdentity.Name;

问题与模仿有关。 为了进行正确的身份验证,我必须做两件事:1)我必须为我的应用程序在 IIS 中启用 ASP.NET 模拟。 (这也可以在 web.config 中完成,但我不希望这样做,因为我必须更改服务器配置才能使其正常工作。) 2)我必须从集成更改应用程序池的托管管道模式对于经典,这也在 IIS 中,用于我的应用程序。

然后它起作用了。 感谢所有建议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM