0

我有一个带有声明身份验证和 FBA 设置的 SP 站点。Dual auth Win/Forms 运行良好。

我在应用页面上有一个 asp:PasswordRecovery 控件。它似乎可以正确查找帐户 - 如果未找到用户名,则返回“未找到”消息。但是,它无法使用以下 execption 重置密码:

Exception information: 
   Exception type: NotImplementedException   
   Exception message: The method or operation is not implemented.   


Thread information: 
Thread ID: 10 
Thread account name: SERVER01\SPS_Farm 
Is impersonating: False 
Stack trace:    at    Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider.GetUser(String name, Boolean userIsOnline)  
at System.Web.Security.MembershipProvider.GetUser(String username, Boolean userIsOnline, Boolean throwOnError)  
at System.Web.UI.WebControls.PasswordRecovery.AttemptSendPasswordUserNameView()  
at System.Web.UI.WebControls.PasswordRecovery.OnBubbleEvent(Object source, EventArgs e)  
at System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)  
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)  
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)  

提前致谢。

更新:
我添加:
enablePasswordReset="true"
到应用程序 web.config 和令牌服务 web.config

编写了一些代码进行手动测试,当我的代码尝试“重置”密码时仍然得到这个:
此提供程序未配置为允许密码重置。要启用密码重置,请在配置文件中将 enablePasswordReset 设置为“true”。

4

1 回答 1

1

这可能无济于事,因为您似乎正在正确查找用户......但如果您不这样做,我知道您可能会遇到未实现的问题:

确保使用适当的 Membership Provider 获取用户的实例。

例如

MembershipUser myUser = Membership.Providers["aspMembership"].GetUser(userName, false);

希望这可以帮助。

于 2011-06-02T15:42:48.220 回答