在 web.config 文件中指定的 SitefinityMembershipProvider 的提供程序名称“默认”无效。该名称应与 Sitefinity 的 Security.config 配置中配置的提供程序之一匹配。
我正在尝试在我的 asp.net Web 应用程序中使用 sitefinity 成员身份来验证用户。我有一个包含用户和角色的 sitefinity 数据库。会员资格在 sitefinity 项目中工作,但在外部网站中不工作。
我将所有 DLL 从 bin 文件夹和 App_Data/Sitefinity/Configuration 中的所有文件复制到外部 asp.net Web 应用程序。
还在 web.config 中添加了 Provider
<membership defaultProvider="Default">
<providers>
<clear/>
<add name="Default" type="Telerik.Sitefinity.Security.Data.SitefinityMembershipProvider, Telerik.Sitefinity"/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
在 SecurityConfig 配置文件中还添加了 Membership 部分
<membership defaultProvider="Default">
<providers>
<clear/>
<add name="Default" type="Telerik.Sitefinity.Security.Data.SitefinityMembershipProvider, Telerik.Sitefinity"/>
</providers>
</membership>
在我尝试使用的登录按钮单击事件中
System.Web.Security.MembershipProvider mp = System.Web.Security.Membership.Providers["default"];
var rtn = mp.ValidateUser("admin", "123456");
if (rtn)
{
Telerik.Sitefinity.Security.UserManager um = Telerik.Sitefinity.Security.UserManager.GetManager();
var user = um.GetUser(Model.Username);
}
验证用户,但它会引发错误。