gpt4 book ai didi

asp.net - IIS7 授权规则/配置 - 永久提示

转载 作者:行者123 更新时间:2023-12-03 18:31:08 25 4
gpt4 key购买 nike

我正在尝试使用 .NET 授权规则来保护 IIS7 中的应用程序。

默认情况下,Web 服务器允许所有用户访问(这是继承的)。

我已经添加了,仅针对这个应用程序目录,拒绝所有用户命令,以及针对特定用户的允许命令。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<authorization>
<allow users="myusername" />
<deny users="*" />
</authorization>
</system.web>
</configuration>

我启用了 Windows 身份验证,我可以验证没有我的 REMOTE_USER 是 MYDOMAIN\myusername 这一行。

但是,当我尝试拒绝所有用户时,系统会提示我输入典型的 Windows 域用户名/密码框。如果我输入用户名密码,提示会再次出现 3 次,直到最后向我显示失败消息。 (我也试过没用)

在事件查看器中查看,似乎我使用用户名和密码登录在审计中成功......而且更进一步,我的帐户没有被锁定(如果我未能登录并且超过)。所以就好像我正在登录,但配置没有看到我输入的内容与我的登录信息相匹配。

以下是我看到的消息(即使使用本地主机从服务器连接时):

**访问被拒绝。

描述:访问服务此请求所需的资源时发生错误。服务器可能未配置为访问请求的 URL。

错误消息 401.2。:未经授权:由于服务器配置,登录失败。根据您提供的凭据和 Web 服务器上启用的身份验证方法,验证您是否有权查看此目录或页面。如需更多帮助,请联系 Web 服务器的管理员。**

最佳答案

首先,主要问题是 IIS6 授权也包含在 IIS7 中,至少在我的情况下是默认设置。首先,确保您安装了 IIS7 授权。完整的说明可以在这里找到:

http://www.iis.net/ConfigReference/system.webServer/security/authorization

发生混淆是因为在 IIS7 中,您的应用程序菜单中有一项名为“.NET 授权规则”(在 ASP.NET 部分下)。这不是您想要的 IIS7 授权。为此,您必须确保已安装它(请参阅上面的链接),然后单击应用程序的 IIS 部分下名为“授权规则”的链接

另一个值得一提的注意事项,如果您将以下配置放在适当的位置:

<configuration>
<system.webServer>
<security>
<authorization>
<remove users="*" roles="" verbs="" />
<add accessType="Deny" users="unknownname" />
<add accessType="Allow" users="knownname" />
</authorization>
</security>
</system.webServer>
</configuration>

这将导致每个人都被拒绝。看起来,如果您拒绝不存在的用户名或角色,则每个人都会被拒绝。如果被拒绝的用户被识别,那么它工作正常。

此外,为 * 指定拒绝并允许某些用户将不起作用,它将拒绝所有用户。您只需删除 * 用户(如我上面的示例),然后只允许您的目标受众。默认情况下,其他所有人都被拒绝。

关于asp.net - IIS7 授权规则/配置 - 永久提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4389140/

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