【发布时间】:2014-01-03 20:57:09
【问题描述】:
我正在将 ASP.NET 网站迁移到 Sitecore 7。我有一个登录页面供外部用户登录我的网站。我正在尝试访问外部 aspnetdb 来执行此身份验证。我已经关注了这篇文章中的内容:
Sitecore authenticate users against external membership database
当我尝试调用 GetUser 方法时,我得到一个空值。此外,当我转到我的用户管理器时,我看不到我的任何用户位于 aspnetdb 中。
我的配置如下:
我在我的 ConnectionsStrings.config 中添加了一个连接字符串:
<add name="test" connectionString="user id=***;password=***;Data Source=localhost;Database=aspnetdb"/>
在我的 web.config 中,我添加了成员资格和角色提供者定义:
<membership defaultProvider="sitecore" hashAlgorithmType="SHA1">
<providers>
<clear/>
<add name="sitecore" type="Sitecore.Security.SitecoreMembershipProvider, Sitecore.Kernel" realProviderName="switcher" providerWildcard="%" raiseEvents="true"/>
<add name="sql" type="System.Web.Security.SqlMembershipProvider" connectionStringName="core" applicationName="sitecore" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="256"/>
<add name="switcher" type="Sitecore.Security.SwitchingMembershipProvider, Sitecore.Kernel" applicationName="sitecore" mappings="switchingProviders/membership"/>
<add name="testProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="test" applicationName="sitecore" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="256"/>
</providers>
</membership>
<roleManager defaultProvider="sitecore" enabled="true">
<providers>
<clear/>
<add name="sitecore" type="Sitecore.Security.SitecoreRoleProvider, Sitecore.Kernel" realProviderName="switcher" raiseEvents="true"/>
<add name="sql" type="System.Web.Security.SqlRoleProvider" connectionStringName="core" applicationName="sitecore"/>
<add name="switcher" type="Sitecore.Security.SwitchingRoleProvider, Sitecore.Kernel" applicationName="sitecore" mappings="switchingProviders/roleManager"/>
<add name="testProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="test" applicationName="sitecore"/>
</providers>
</roleManager>
然后我添加了我的域切换器映射:
<switchingProviders>
<membership>
<provider providerName="sql" storeFullNames="true" wildcard="%" domains="*"/>
<provider providerName="testProvider" storeFullNames="false" wildcard="%" domains="extranet"/>
</membership>
<roleManager>
<provider providerName="sql" storeFullNames="true" wildcard="%" domains="*"/>
<provider providerName="testProvider" storeFullNames="false" wildcard="%" domains="extranet"/>
</roleManager>
<profile>
<provider providerName="sql" storeFullNames="true" wildcard="%" domains="*"/>
</profile>
</switchingProviders>
任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
我从您提到的其他文章链接中注意到,有一个关于创建新域和修改域提供程序的参考。您是否也进行了这些更改?
-
@mark 我已经尝试过使用新域和已经存在的外联网域......我得到了相同的结果。
标签: asp.net asp.net-membership sitecore