在单个 ASP.NET 网站中支持 HTTP 身份验证和表单身份验证
基本上,您将一个名为 MADAM 的 dll 添加到您的项目中,调整您的 web.config 并配置您希望将哪些文件作为 Basic 而不是 Forms 进行身份验证:
<configuration>
<configSections>
<sectionGroup name="madam">
<section name="userSecurityAuthority" type="System.Configuration.SingleTagSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="formsAuthenticationDisposition" type="Madam.FormsAuthenticationDispositionSectionHandler, Madam" />
</sectionGroup>
</configSections>
...
<madam>
<userSecurityAuthority ... />
<formsAuthenticationDisposition>
<discriminators all="[true|false]">
...
</discriminators>
</formsAuthenticationDisposition>
</madam>
...
<system.web>
<httpModules>
<add name="FormsAuthenticationDisposition" type="Madam.FormsAuthenticationDispositionModule, Madam" />
<add name="AuthenticationModule" type="MADAM Authentication Module Type" />
</system.web>
</configuration>
这很容易设置并解决了我能够验证 elmah.axd 并且仍然能够使用基本身份验证凭据订阅 RSS 提要的问题。
旁注 MADAM 是由写 ELMAH 的同一个人写的,巧合吗?