0

私はこの問題を抱える最初の人になることはできません。私はサイトを保護するためにSqlMembershipProviderでフォーム認証を使ってセキュリティで保護された非公開のASP.NETサイトを継承しました。開発者が手動でデータベースに追加したユーザーはすべて正常に動作しています。プライベートサイトのメンバーシッププロバイダを使用

私はpriviliged、ユーザーがユーザーアカウントを追加して変更できるようにするために、管理ページを追加する必要があります。メンバーシッププロバイダは本当に簡単にビルドすることができますが、SqlMembershipProviderの問題は質問/回答の要件です。管理者は、他のユーザーのパスワードを一時パスワードにリセットし、新しいユーザーアカウントを作成する必要があります(一時的なパスワードも含む)。パスワードを再設定するには、ユーザーの質問に対する回答か現在のパスワードが必要です。

もちろん、すべてのアカウントについて「質問」や「回答」のようなものを入力しても問題ありませんが、これを行う際のセキュリティリスクが懸念されます。おそらく、私はあまりにもパラノイドです。カスタムメンバーシッププロバイダを作成すると、多くの作業に加えて、メンバーシッププロバイダベースにも同じ要件があるため、この問題は解決されません。

ありがとうございます。パスワードをReseting

答えて

2

あなたが現在に答え/質問を使用していないある場合

、あなたはweb.configファイル

でこれを上書きすることができ、ユーザの質問に対する答えや、現在のパスワードのいずれかが必要です
requiresQuestionAndAnswer="false" 

その後、あなたが行うことができます。

 string requesteduserGUIDstring = "some GUID"; 
     Guid UserID = new Guid(requesteduseridstring.ToUpper()); 
     MembershipUser mu = Membership.GetUser(UserID); 
     mu.ChangePassword(mu.ResetPassword(), tbNewPassword.Text); 

あなたが質問/回答はを使用している場合、あなたはあなたのweb.configファイルにプロバイダを追加してのみ、そのプロバイダに同じ却下を設定し、ONLYリセットパスワード機能のために、そのプロバイダを使用することができ、

+0

GUID私のコードから抜粋したものですが、他のものを削除しましたが、画像を取得すると思います。 – Pleun

+0

ああ、ありがとうございます。私はそれがこのような単純なものでなければならないことを知っていました。 – Paul

関連する問題