提供商名称无效"默认"对于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);
}
验证用户但是它会抛出错误。
答案 0 :(得分:0)
我不确定您的问题是什么,但您需要确保已将所有Sitefinity和OpenAccess程序集拉到bin文件夹中。
此外,根据此帖子http://www.sitefinity.com/devnet/forums/sitefinity-4-x/sdk/reference-sitefinity-dll-s-from-external-site.aspx - “Sitefinity组件依赖于配置,该配置不再存储在web / app配置中,而是存储在app_data中的单独配置文件中”,因此您需要将这些也是。
但是,推荐的方法是建立一个网络服务(http://www.sitefinity.com/devnet/forums/sitefinity-3-x/developing-with-sitefinity/creating-users-with-sitefinity- api.aspx#1162552)。