保护ELMAH,同时可以通过RSS阅读器访问它

时间:2009-06-25 20:58:55

标签: asp.net security web-config windows-authentication elmah

我们在应用程序中使用ELMAH错误异常日志记录。我想让ELMAH对常规用户保持安全,同时仍然可以将其提供给应用程序的管理员/开发人员。

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

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

关注Google如何使用Cookie设置身份验证直通,请回顾此问题article on CodeProject。这是我的问题的一个很好的解决方案吗?

还有另一种方法可以在保持安全的同时更好地访问RSS源吗?

感谢。

2 个答案:

答案 0 :(得分:12)

Supporting HTTP Authentication and Forms Authentication in a Single ASP.NET Web Site

基本上你将一个名为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的同一个人写的,巧合?

答案 1 :(得分:1)

取决于客户端我想 - 我知道some desktop readers(确定其他人也这样做)支持需要身份验证的Feed,并在首次请求时提供登录框 - 不确定他们在幕后做了什么让它工作。