несколько поставщиков членства asp.net - PullRequest
0 голосов
/ 02 сентября 2010

Я создал двух провайдеров обычного членства, которые я хотел бы добавить в свой web.config. Первым будет значение по умолчанию, которое будет использовать приложение asp.net. Второй будет вызван службой WCF, которая есть в том же приложении.

Поставщики в разделе членства моего web.config выглядят следующим образом:

    <add name="SiteProvider" type="MyNameSpace.SiteProvider, MyNameSpace" ApplicationName="Si2" EnablePasswordReset="true" PasswordStrengthRegularExpression="(?=[\w$#_ ]{8,})(?=.*?\d)(?=.*?[A-z])[\w$#_ ]*" ResetPasswordMinimumLength="8" ResetPasswordPattern="USL9SLU9SLU9SLLLL" ResetPasswordAllowDuplicateCharacters="false" />
    <add name="WCFProvider" type="MyNameSpace.WCFProvider, MyNameSpace" ApplicationName="Si2" EnablePasswordReset="true" PasswordStrengthRegularExpression="(?=[\w$#_ ]{8,})(?=.*?\d)(?=.*?[A-z])[\w$#_ ]*" ResetPasswordMinimumLength="8" ResetPasswordPattern="USL9SLU9SLU9SLLLL" ResetPasswordAllowDuplicateCharacters="false" />

Я получаю сообщение об ошибке «Элемент уже добавлен. Ключ в словаре:« SiteProvider »Добавляемый ключ:« SiteProvider »» каждый раз, когда я просматриваю сайт.

Это не имеет смысла для меня, потому что они имеют уникальные имена. Если я удалю второго провайдера, сайт будет доступен для просмотра.

Буду признателен за любую помощь по добавлению второго провайдера.

1 Ответ

0 голосов
/ 02 сентября 2010

Самое простое решение - переместить веб-сервис в другой проект.

Кроме того, обязательно добавьте <clear/> перед добавлением провайдеров и включите одного по умолчанию ...

<membership defaultProvider="Siteprovider">
    <providers>
        <clear/>
        <add name="SiteProvider" type="MyNameSpace.SiteProvider, MyNameSpace" ApplicationName="Si2" EnablePasswordReset="true" PasswordStrengthRegularExpression="(?=[\w$#_ ]{8,})(?=.*?\d)(?=.*?[A-z])[\w$#_ ]*" ResetPasswordMinimumLength="8" ResetPasswordPattern="USL9SLU9SLU9SLLLL" ResetPasswordAllowDuplicateCharacters="false" />
        <add name="WCFProvider" type="MyNameSpace.WCFProvider, MyNameSpace" ApplicationName="Si2" EnablePasswordReset="true" PasswordStrengthRegularExpression="(?=[\w$#_ ]{8,})(?=.*?\d)(?=.*?[A-z])[\w$#_ ]*" ResetPasswordMinimumLength="8" ResetPasswordPattern="USL9SLU9SLU9SLLLL" ResetPasswordAllowDuplicateCharacters="false" />
    </providers>
</membership>

Вы можете попробовать решение в этом сообщении на форуме: http://forums.asp.net/p/1112089/1714276.aspx

Вы пытались поместить отдельный файл web.config в папку webservice?Я сомневаюсь, что это сработает, но стоит попробовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...