Asegurar ELMAH mientras hace posible acceder a él a través de RSS Reader
-
20-08-2019 - |
Pregunta
Utilizamos el registro de excepciones de errores de ELMAH en nuestra aplicación. Me gustaría mantener a ELMAH seguro de los usuarios habituales y al mismo tiempo ponerlo a disposición de los administradores / desarrolladores de la aplicación.
Cuando configura la seguridad con autenticación de formularios en web.config, pierde la capacidad de acceder a la fuente RSS. Me gustaría poder proteger ELMAH pero aún así pasar la autenticación al axd para poder acceder a la fuente RSS (es decir, /elmah.axd/rss) desde un lector RSS.
Pensando que la autenticación http sería adecuada ya que probablemente pueda acceder al feed rss con la siguiente sintaxis de url http: // username: password@somedomain.com/elmah.axd/rss Supongo que necesitaría configurar el modo de autenticación = " windows " en esa ruta específica en web.config. Sin embargo, surge un problema: ¿cómo se configuran las credenciales en un archivo virtual?
Mirar a Google trae de vuelta este artículo sobre CodeProject sobre cómo configurar el paso de autenticación con cookies. ¿Es esta una buena solución a mi problema?
¿Hay alguna otra manera que sea mejor poder acceder a la fuente RSS sin dejar de ser seguro?
Gracias.
Solución
Soporte de autenticación HTTP y autenticación de formularios en un único sitio web ASP.NET
Básicamente agrega un dll llamado MADAM a su proyecto, ajusta su web.config y configura qué archivos desea autenticar como Básico en lugar de Formularios:
<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>
Esto fue fácil de configurar y resolvió mi problema de poder autenticar elmah.axd y aún así poder suscribirme a la fuente RSS con credenciales de autenticación básica.
Nota al margen MADAM está escrita por el mismo tipo que escribió ELMAH, ¿coincidencia?
Otros consejos
Supongo que depende del cliente: sé algunos lectores de escritorio (seguro que otros lo hacen) , también) admite feeds que requieren autenticación y proporciona un cuadro de inicio de sesión cuando lo solicite por primera vez; sin embargo, no estoy seguro de lo que están haciendo detrás de escena para que funcione.