windows 凭据 IIS 10.0 的问题
Problems with windows credentials IIS 10.0
我有一个 .NET core 3.1 razor pages 网站。我正在使用 windows 凭据(使用 Active Directory)进行 身份验证 并且我正在使用策略管理 授权 。
使用 IIS express(您开发时使用的那个可以正常工作。显示我的用户名)
现在我正在使用 IIS 管理器使用我的机器 IP 托管此站点,例如 'xxx.xxx.xxx.xxx:portNumber'。如果启用了匿名身份验证,这将加载,但如果我包含 windows 凭据,它将失败。
我按照这里的指南 --> https://docs.microsoft.com/en-us/aspnet/core/security/authentication/windowsauth?view=aspnetcore-3.1&tabs=visual-studio
基本上我做了前面 link 中显示的内容。 (创建了 web.config 文件并按照此处列出的步骤进行操作)
web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
</configuration>
当我尝试在我的站点的 IIS 管理器中输入身份验证选项时出现以下错误。
这个配置节不能用在这个路径上。当该部分被锁定在父级别时会发生这种情况。锁定是默认情况下 (overrideModeDefault="Deny"),或者由带有 overrideMode="Deny" 的位置标签或旧版 allowOverride="false" 明确设置
点击接受按钮后,以下 table 加载。
当我尝试访问该网站时,它正在抛出
错误 HTTP 500.19 - 内部服务器错误
模块:WindowsAuthenticationModule
通知:AuthenticateRequest
配置来源
<anonymousAuthentication enabled="false" />
**<windowsAuthentication enabled="true" />** --> *this line is in red*
</authentication>
我在这里更改了 applicationhost.config 文件中的几行。
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<section name="windowsAuthentication" overrideModeDefault="Allow" />
我将这两行从 Deny 更改为 Allow。重启,还是不行。
我也激活了一些 windows 功能,如下所示
我终于解决了。我提到了这个 post This configuration section cannot be used at this path - Windows 2016
我在位于的文件中设置了以下条目
C:\Windows\System32\inetsrv\config\applicationHost.config
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="ipSecurity" overrideModeDefault="Allow" />
我错误地编辑了我文档文件夹中 IISExpress
中的 applicationHost.config
。这就是为什么这不起作用。
我有一个 .NET core 3.1 razor pages 网站。我正在使用 windows 凭据(使用 Active Directory)进行 身份验证 并且我正在使用策略管理 授权 。 使用 IIS express(您开发时使用的那个可以正常工作。显示我的用户名)
现在我正在使用 IIS 管理器使用我的机器 IP 托管此站点,例如 'xxx.xxx.xxx.xxx:portNumber'。如果启用了匿名身份验证,这将加载,但如果我包含 windows 凭据,它将失败。 我按照这里的指南 --> https://docs.microsoft.com/en-us/aspnet/core/security/authentication/windowsauth?view=aspnetcore-3.1&tabs=visual-studio 基本上我做了前面 link 中显示的内容。 (创建了 web.config 文件并按照此处列出的步骤进行操作)
web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
</configuration>
当我尝试在我的站点的 IIS 管理器中输入身份验证选项时出现以下错误。
这个配置节不能用在这个路径上。当该部分被锁定在父级别时会发生这种情况。锁定是默认情况下 (overrideModeDefault="Deny"),或者由带有 overrideMode="Deny" 的位置标签或旧版 allowOverride="false" 明确设置 点击接受按钮后,以下 table 加载。
当我尝试访问该网站时,它正在抛出 错误 HTTP 500.19 - 内部服务器错误
模块:WindowsAuthenticationModule
通知:AuthenticateRequest
配置来源
<anonymousAuthentication enabled="false" />
**<windowsAuthentication enabled="true" />** --> *this line is in red*
</authentication>
我在这里更改了 applicationhost.config 文件中的几行。
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<section name="windowsAuthentication" overrideModeDefault="Allow" />
我将这两行从 Deny 更改为 Allow。重启,还是不行。
我也激活了一些 windows 功能,如下所示
我终于解决了。我提到了这个 post This configuration section cannot be used at this path - Windows 2016
我在位于的文件中设置了以下条目
C:\Windows\System32\inetsrv\config\applicationHost.config
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="ipSecurity" overrideModeDefault="Allow" />
我错误地编辑了我文档文件夹中 IISExpress
中的 applicationHost.config
。这就是为什么这不起作用。