Защита ELMAH, но при этом доступ к нему через RSS Reader

Мы используем регистрацию ошибок ошибок ELMAH в нашем приложении. Я бы хотел, чтобы ELMAH был защищен от обычных пользователей, все еще делая его доступным для администраторов/разработчиков приложения.

Когда вы устанавливаете безопасность с помощью проверки подлинности форм в файле web.config, вы теряете возможность доступа к RSS-каналу. Я хотел бы иметь возможность защищать ELMAH, но все же передавать аутентификацию на axd, чтобы иметь возможность доступа к RSS-каналу (то есть /elmah.axd/rss) из RSS-ридера.

Думая, что http-аутентификация будет правильной, как тогда, я могу, вероятно, добраться до rss-канала со следующим синтаксисом url http://username:[email protected]/elmah.axd/rss Я предполагаю, что вы необходимо установить режим проверки подлинности = "окна" на этом конкретном пути в web.config. Возникает одна проблема: как установить учетные данные в виртуальном файле?

Взгляд на Google возвращает эту статью в статье CodeProject о том, как настроить проверку подлинности с помощью файлов cookie. Является ли это хорошим решением моей проблемы?

Есть ли другой способ, который лучше иметь доступ к RSS-каналу, будучи еще безопасным?

Спасибо.

Ответы

Ответ 1

Поддержка проверки подлинности HTTP и проверки подлинности форм на одном веб-сайте ASP.NET

В основном вы добавляете DLL, называемую MADAM в свой проект, настраиваете файл 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, совпадение?

Ответ 2

В зависимости от клиента, я думаю - я знаю некоторые настольные читатели (конечно же, другие делают), поддерживают фиды, требующие аутентификации, и предоставить окно входа в систему при первом запросе - не уверен, что они делают за кулисами, чтобы заставить его работать.