にasp.netメンバーシッププロバイダーでハッシュパスワードを変更する方法を私はコードaccrossに来ましたパスワード。 ランダムなパスワードを生成するリセット機能を追加したいと思います。 は、特定のクライアントにuseridとランダムに生成されたパスワードを持つ電子メールを送信します。その後、パスワードを変更することができます。はリセット&MVC
答えて
あなたがあなた自身の塩を作成し、新しいパスワードをハッシュする必要がある場合Membership GeneratePassword方法
string password = System.Web.Security.Membership.GeneratePassword(14, 0);
を使用して、このようなランダムなパスワードを生成することができ、ここで多くの会員コードと同じこと実装です:
public class Cryptographer : ICryptographer
{
#region ICryptographer Members
public string CreateSalt()
{
byte[] data = new byte[0x10];
new RNGCryptoServiceProvider().GetBytes(data);
return Convert.ToBase64String(data);
}
/// <summary>
/// Hash the password against the salt
/// </summary>
/// <param name="pass">Plain password</param>
/// <param name="salt">Salt string</param>
/// <returns>Encrypted password</returns>
public string HashPassword(string password, string salt)
{
byte[] bytes = Encoding.Unicode.GetBytes(password);
byte[] src = Convert.FromBase64String(salt);
byte[] dst = new byte[src.Length + bytes.Length];
byte[] inArray = null;
Buffer.BlockCopy(src, 0, dst, 0, src.Length);
Buffer.BlockCopy(bytes, 0, dst, src.Length, bytes.Length);
HashAlgorithm algorithm = HashAlgorithm.Create(System.Web.Security.Membership.HashAlgorithmType);
inArray = algorithm.ComputeHash(dst);
return Convert.ToBase64String(inArray);
}
#endregion
}
最初のものは簡潔ではるかに優れていますが、どのようなabtはハッシュパスワードを変更するのですか? –
これは、データベースに直接保存する必要がある場合、または独自のプロバイダを作成する場合に使用します。あなたは、あなたが何をしているかに応じて、これなしでも可能です。 – CRice
yeh私はdbに直接保存しますが、ユーザーはリセット後にパスワードを変更できます。 –
ChangePassword
方法の第二のparemeterは、あなたがそのユーザーのために使用したい新しいパスワードをreprisents文字列です。
これは、ユーザーに電子メールで送信する自動生成文字列であっても、任意の文字列に変更できます。あなたの新しい質問に答えるために
UPDATE
、私は、パスワードなどのすべてのハッシュは、メンバーシッププロバイダーによって処理されていることを信じています。
単純にユーザーのパスワードをランダムな新しい値にリセットする場合は、ChangePassword
の代わりにResetPassword
メソッドを使用する方がよい場合があります。
この意志:
新しい、自動的に生成されたパスワードとユーザーのパスワードをリセットします。
Yehしかし、ランダムなパスワードは親切ではありません。私が望むのは、パスワード変更機能をユーザーに提供して、パスワードをより読みやすいものに変更できるようにすることです。 –
- 1. MVCリセットExceptionContext.Resultを回避するには?
- 2. ASP.NET MVCでAnonymousIDをリセットするには?
- 3. Spring MVC/Jackson:完了後のオブジェクトマッパーのリセット
- 4. javascriptでイメージの寸法をリセットするには? (MVC)
- 5. MVCグローバルリストがajaxのポストバックの後にリセットされました
- 6. MVCで管理者がユーザーパスワードをnullにリセットする方法
- 7. MVC 4でmy textareaがデフォルト値からリセットされない
- 8. リセット指数は
- 9. リセットPHPキャッシュは
- 10. コントローラで処理されたSpring MVCで@ModelAttributeをリセットするには?
- 11. Flickでのリセットのリセット
- 12. rxjs publishReplay:リセット時にリセット
- 13. ポストバックフォームの状態でAjaxを使用したMVCポストフォームとJQueryのリセット
- 14. jveryを使用してmvcのフォームの隠し値をリセットする
- 15. Rリーフイージーボタン:レイヤーbboxへのリセットをリセット
- 16. ウェブサイトのXMLアップロードのリセットをリセットする
- 17. キーワードとアプリケーションのリセットをリセットします。
- 18. PostCSSの自動リセットによるCSSリセット
- 19. jQuery mouseclick counter - リセット方法は?
- 20. バンドルラーパスをリセットするには
- 21. OnTouchListenerをリセットするには?
- 22. コンボボックスをリセットするには?
- 23. デフォルトのインタプリタは常にリセット
- 24. カピバラのリセットは、各要求
- 25. リセット値は、後に、角2
- 26. Tensorflowリセットまたはクリアコレクション
- 27. StatefulKnowledgeSessionをリセットするには?
- 28. JLabelをリセットするには
- 29. シングルトンインスタンスをリセットするには?
- 30. キュービズムのリセットまたはクリアグラフ
わかりません。これは、ユーザーのパスワードを「パスワード」に設定しています。それはどこにでも入力できる文字列か、サイトの「パスワードを変更する」セクション(おそらく電子メールのリンクから)に入る前にユーザーに電子メールで送られるハードコードされた文字列です。 –
orytだから、 "password"を使う代わりに、次のようなものを使うことができます:string newPassword = Membership.GeneratePassword(8、2); newpassword –
ええと正確に... –