我们在应用程序中使用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源吗?
感谢。
答案 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,并在首次请求时提供登录框 - 不确定他们在幕后做了什么让它工作。