我们在我们的应用程序中使用ELMAH错误异常记录.我希望保持ELMAH安全的一般用户,同时仍然提供给应用程序的管理员/开发人员.
当您在web.config中设置表单身份验证的安全性时,您将失去访问RSS提要的能力.我希望能够保护ELMAH,但仍然通过认证到axd,以便能够从RSS阅读器访问RSS源(即/elmah.axd/RSS).
认为http认证是正确的,那么我可以使用以下url语法获得RSS Feed http://username:password@somedomain.com/elmah.axd/rss我假设您需要在web.config中的特定路径上设置认证模式=“windows”.弹出一个问题,但是如何在虚拟文件上设置凭据?
看看Google带来了article on CodeProject关于如何设置身份验证通过Cookie.这是我的问题的好方法吗?
还有另一种方法能够在仍然安全的情况下能够访问RSS Feed?
谢谢.
解决方法
Supporting HTTP Authentication and Forms Authentication in a Single ASP.NET Web Site
基本上你添加一个名为MADAM的dll到你的项目中调整你的web.config并配置你要验证哪个文件作为基本而不是表单:
<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 Feed.
旁注MADAM是由同一个写的ELMAH的家伙写的,巧合?