14

我们在应用程序中使用 ELMAH 错误异常日志记录。我想保护 ELMAH 不受普通用户的影响,同时仍然让应用程序的管理员/开发人员可以使用它。

当您在 web.config 中使用表单身份验证设置安全性时,您将失去访问 RSS 提要的能力。我希望能够保护 ELMAH,但仍然通过对 axd 的身份验证,以便能够从 RSS 阅读器访问 RSS 提要(即 /elmah.axd/rss)。

认为 http 身份验证是正确的,因为我可能可以使用以下 url 语法http://username:password@somedomain.com/elmah.axd/rss访问 rss 提要,我假设您需要设置身份验证模式 = windows”在 web.config 中的特定路径上。一个问题是如何在虚拟文件上设置凭据?

查看 Google 会带回CodeProject上关于如何使用 cookie 设置身份验证传递的这篇文章。这是解决我问题的好方法吗?

有没有其他更好的方法可以在安全的同时访问 RSS 提要?

谢谢。

4

2 回答 2

12

在单个 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 的同一个人写的,巧合吗?

于 2009-06-26T21:21:54.123 回答
1

取决于我猜的客户端 - 我知道一些桌面阅读器(当然其他人也这样做)支持需要身份验证的提要,并在首次请求时提供登录框 - 不确定他们在幕后做了什么以使其工作.

于 2009-06-25T22:18:10.217 回答