0

クレーム認証とFBAが設定されたSPサイトがあります。デュアル認証Win/Formsは完全に機能しています。

アプリページにasp:PasswordRecoveryコントロールがあります。アカウントを正しく検索しているようです。ユーザー名が見つからない場合は、「見つかりません」というメッセージが返されます。ただし、次の実行ではパスワードのリセットに失敗します。

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とtoken- serviceweb.configに追加しました

手動テストを行うためにいくつかのコードを書きましたが、私のコードがパスワードを「リセット」しようとしたときにもこれを取得しました。
このプロバイダーは、パスワードのリセットを許可するように構成されていません。パスワードのリセットを有効にするには、構成ファイルでenablePasswordResetを「true」に設定します。

4

1 に答える 1

1

ユーザーを適切に検索しているように見えるため、これは役に立たない場合があります...しかし、これを行わないと、実装されていない問題が発生する可能性があることを私は知っています。

適切なメンバーシッププロバイダーを使用して、ユーザーのインスタンスを取得してください。

例えば

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

お役に立てれば。

于 2011-06-02T15:42:48.220 に答える