多个asp.net会员提供商

时间:2010-09-02 13:13:16

标签: asp.net visual-studio-2008 wcf membership-provider

我创建了两个我要添加到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 :(得分:0)

最简单的解决方案是将Web服务移动到另一个项目中。

此外,请确保在添加提供商之前致电<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

您是否尝试在webservice文件夹中添加单独的web.config文件?我怀疑它会起作用,但值得一试。