Как развернуть настраиваемый MembershipProvider для ASP.net? - PullRequest
2 голосов
/ 08 января 2009

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

Нужно ли отбрасывать мою сборку в определенном месте, чтобы мой класс MembershipProvider был обнаружен IIS? Если это так, что нужно делать .dll? Иначе, как сказать ASP.Net использовать мой MembershipProvider? Каждый пример, который я видел, просто ссылается на полное имя класса, но не упоминает, как файл должен быть развернут.

1 Ответ

8 голосов
/ 08 января 2009

Если вы заглянете в файл web.config для своего приложения, у вас должен быть раздел system.web. В этом есть элемент членства со списком поставщиков. Вы сможете добавить своего провайдера и установить там провайдера по умолчанию. Как только ваш членский аккаунт будет зарегистрирован таким образом, вы сможете выбрать его по умолчанию для этого приложения в IIS.

<system.web>
    ...
    <membership defaultProvider="MyMembershipProvider" 
                    userIsOnlineTimeWindow="15">
        <providers>
            <add name="MyMembershipProvider"
                             type="Common.Auth.MyMembershipProvider, Common" 
                             connectionStringName="MyAuthDBConnectionString" 
                             enablePasswordRetrieval="true" 
                             enablePasswordReset="true" 
                             requiresQuestionAndAnswer="true" 
                             writeExceptionsToEventLog="false" />
        </providers>
    </membership>
    ...
</system.web>

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

<system.web>
    ...
    <membership defaultProvider="MembershipProvider1">
        <providers>
            <clear />
            <add name="MembershipProvider1" ... />
            <add name="MembershipProvider2" ... />
        </providers>
    </membership>
    ...
</system.web>

Если вы хотите зарегистрировать одного и того же поставщика в нескольких веб-приложениях только с помощью диспетчера IIS, вам нужно поместить сборку в GAC и вместо этого добавить поставщика в один из файлов конфигурации компьютера. Это обычно больше работы для небольшой выгоды при развертывании одного приложения.

...