Защищая ELMAH, в то же время делая возможным доступ к нему через RSS-ридер

StackOverflow https://stackoverflow.com/questions/1046234

Вопрос

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

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

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

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

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

Спасибо.

Это было полезно?

Решение

Поддержка аутентификации HTTP и проверки подлинности Forms в одном приложении 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-канал с базовыми учетными данными для аутентификации.

Примечание МАДАМ написано тем же парнем, который написал ELMAH, совпадение?

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top