私はMVC4インターネットテンプレートを使用してWebアプリケーションを作成しています。ユーザー管理に複雑なことはまったく必要なかったので、デフォルトのSimpleMembershipProviderを使用しました。 App_Startのメンバーシップを初期化し、役割とユーザーを設定して機能させています。私はSSOまたは他のOAuth=機能のいずれかを使用していません。今、彼のパスワードを忘れたテスターがいます。それを変更!
ドキュメントを確認したところ、ResetPassword関数 SimpleMembershipを使用している場合はサポートされていません であることがわかりました。私の質問は、次のいずれかです:
(理論的には)メンバーシッププロバイダーをSimpleMembershipを使用するように設定するweb.config設定を見つけましたが、使用するテーブルを指定する方法がわかりません(それが正しい方法であると想定しています)。
web.configセクション:
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
<providers>
<clear/>
<add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
</providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>
そして、私が(思う)web.configに必要な現在のInitializeDatabaseConnection:
WebSecurity.InitializeDatabaseConnection("UPEFSSecurity", "Datamart_User", "UserId", "UserName", autoCreateTables: true);
これを適切に行うには、メール復旧リンクを設定する必要があります。しかし、これがあなたが行うAPI呼び出しです:
var token = WebSecurity.GeneratePasswordResetToken(username);
// create a link with this token and send email
// link directed to an action with form to capture password
WebSecurity.ResetPassword(token, password);
http://msdn.Microsoft.com/en-us/library/webmatrix.webdata.websecurity.resetpassword(v = vs.111).aspx