我已经在Sharepoint 2010上实现了FBA (基于索赔的认证)。实施了以下措施。
但现在,代码抛出异常,表示“函数未实现”。我想知道,我没有使用任何必须为其创建自定义成员资格提供程序的自定义数据库。那我为什么要犯这个错误。如果有人有任何线索或遇到类似的问题,请告诉我。谢谢。
你好,帕迪
发布于 2011-01-17 21:03:30
在为SharePoint 2010配置FBA时,在web.config文件中定义了两个成员资格提供程序-- Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider (通常命名为i)和System.Web.Security.SqlMembershipProvider (本例中称为FBAMembership )。默认成员资格提供程序必须设置为前者(即SharePoint声明之一),才能使FBA身份验证正常工作。
执行包含Membership.GetUserNameByEmail(...)的行时,将使用默认的成员资格提供程序,从而调用SPClaimsAuthMembershipProvider.GetUserNameByEmail。MSDN说,这个方法是保留给内部使用的,不打算直接从代码中使用,并且根据Community部分中的注释,它抛出NotImplementedException。
您需要从SqlMembershipProvider集合中检索Membership.Providers提供程序的一个实例,然后使用该实例调用GetUserNameByEmail方法。
在配置web.config文件中的提供程序时,我使用前缀,并按如下方式检索它们:
string applicationNamePrefix = "fbaProvider_";
MembershipProvider fbaProvider;
foreach (MembershipProvider provider in Membership.Providers)
{
if (provider.ApplicationName.StartsWith(applicationNamePrefix, StringComparison.InvariantCultureIgnoreCase))
{
fbaProvider = provider;
}
}
throw new InvalidOperationException("Appropriate provider was not found.");https://stackoverflow.com/questions/4713492
复制相似问题