9

私はweb.configファイルにDefaultMembershipProviderとSqlMembershipProviderの設定を次のようしている。ASP.NET IDのパスワードルールを設定するにはどうすればよいですか?私のASP.NETアプリケーションで

enablePasswordRetrieval="true" 
passwordFormat="Clear" 
requiresQuestionAndAnswer="false" 

彼らはダイジェスト認証のために必要とされます。私はASP.NETアイデンティティに移動したいと思います。私は、私が管理しているすべてのweb.configファイルを自動化ツールで更新しています。

Visual Studio 2013で生成されたプロジェクトで、ASP.NET IDにこれらの設定をどうやって設定しますか?

+1

パスワード検索を大幅双方向暗号化を必要とし、その後平文の認証情報を中継することにより、アプリケーションの弱点を増加させます。可能であれば、電子メールでパスワードリセットトークンを実装することを検討してください。 – pwdst

+0

私はこれがダイジェスト認証では不可能だと確信しています。 –

+0

カスタムパスワードポリシーに関する2014年の日付の記事が見つかりましたhttps://blogs.msdn.microsoft.com/webdev/2014/01/06/implementing-custom-password-policy-using-asp-net-identity/ – oneNiceFriend

答えて

18

ハッシュなしでクリアなパスワードを提供できるIPasswordHasherの実装を提供する必要があります。 UserManager.PasswordHasherを実装に設定できます。

今のところ、アイデンティティのweb.config構成可能な設定はありません。主にStartup.csのコードで構成可能な組み合わせを用意する必要があります

パスワードをクリアフォーマットで保存することはお勧めしません。

public class ClearPassword : IPasswordHasher 
{ 
    public string HashPassword(string password) 
    { 
     return password; 
    } 

    public PasswordVerificationResult VerifyHashedPassword(string hashedPassword, string providedPassword) 
    { 
     if(hashedPassword.Equals(providedPassword)) 
      return PasswordVerificationResult.Success; 
     else return PasswordVerificationResult.Failed; 
    } 
} 
+0

パスワードは平文かハッシュ(ハッシュされたパスワードを使用した場合)ですか? – idipous

+0

この例はクリアテキストのパスワードです。 HashPassword(文字列パスワード)関数でハッシングアルゴリズムを実装し、VerifyHashedPassword関数で同様に検証することができます。 – jd4u

+1

ありがとうございますjd4u、しかし、私はcouldnt、このクラスを追加する場所とどこにそれを呼び出すか? – oneNiceFriend

関連する問題