如何使用默认域在 Web.config 中启用基本身份验证和匿名身份验证?

Posted

技术标签:

【中文标题】如何使用默认域在 Web.config 中启用基本身份验证和匿名身份验证?【英文标题】:How to enable both Basic & Anonymous Authentication in Web.config with default domain? 【发布时间】:2021-08-02 03:31:54 【问题描述】:

我有一个在 .Net 中使用框架版本 4.6.1 开发的 Web API 应用程序,我正在尝试使用具有默认域的 web.config 文件启用基本和匿名身份验证,但它无法正常工作,任何人都可以帮助我启用使用web.config。

我尝试了以下代码,但它不起作用

<system.webServer>
  <security>
    <basicAuthenticaion enabled="true" defaultLogonDomain="DomainName"/>
    <anonymousAuthenticaion enabled="true"/>
  </security>
</system.webServer>

【问题讨论】:

您明白 IIS 的基本身份验证与一般情况下的 HTTP 基本身份验证不同吗? IIS 基本身份验证仅与使用 Windows 安全性有关(无论如何您都不应该使用它):如果您想在 ASP.NET 中使用基本身份验证,则无需在 IIS 中启用基本身份验证。自己的身份验证系统。 yes Dai,对 Windows 服务帐户启用了基本身份验证,现在有人需要在 IIS 中手动启用此功能,我想避免此手动过程。目前,当我手动操作时,它工作正常。 如果启用匿名身份验证,则所有其他身份验证方法都将关闭。你应该问自己为什么要两者兼得,因为根据定义这是不可能的。 【参考方案1】:

你应该添加一个&lt;authentication&gt;的标签,还要注意basicAuthenticationanonymousAuthentication的拼写(你用basicAuthenticaionanonymousAuthenticaion拼写)。

<system.webServer>
    <security>
      <authentication>
        <basicAuthentication enabled="true"/>
        <anonymousAuthentication enabled="true"/>
      </authentication>
    </security>
</system.webServer>

顺便说一句,如果您启用了 Lex Li 在 cmets 中提到的匿名身份验证,其他身份验证方法可能会关闭。所以请检查您的要求是否需要同时启用它们。

【讨论】:

感谢您的回复,能否请您告诉我如何为 basicAthenticaion 添加默认域,换句话说,如果我们编辑基本身份验证,则可以选择编辑默认域,我需要指定我当前的圆顶,我们如何在 web.config 文件中添加 @Gopinath2105 只需添加您在问题中提到的defaultLogonDomain 属性。

以上是关于如何使用默认域在 Web.config 中启用基本身份验证和匿名身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

网页的功能是啥:在 MVC 3 web.config 中启用

使用 web.config 允许服务器端包含在 HTML 文件 (IIS) 中

如何防止 IIS 默认站点 web.config 文件被虚拟目录继承?

通过 Web.config 与 WebApiConfig 和 Controller 属性启用 CORS

在 IIS 7.0 中启用基本身份验证

Web.config 可配置的数据