Защита ELMAH и возможность доступа к нему через RSS Reader - PullRequest
14 голосов
/ 26 июня 2009

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

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

Считая, что аутентификация http будет правильной, так как тогда я, вероятно, смогу перейти к каналу rss со следующим синтаксисом url http://username:password@somedomain.com/elmah.axd/rss Я предполагаю, что вам нужно установить аутентификацию mode = "windows" в этом конкретном пути web.config. Однако возникает одна проблема: как установить учетные данные для виртуального файла?

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

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

Спасибо.

Ответы [ 2 ]

12 голосов
/ 27 июня 2009

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

Обычно вы добавляете dll с именем MADAM в ваш проект, настраиваете свой web.config и настраиваете, какие файлы вы хотите аутентифицировать как Basic вместо форм:

<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 голос
/ 26 июня 2009

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

...