2016-11-28 22 views
0

私のデータベースはSqlMembershipProviderで、hereと書かれています。ASP.NETメンバーシップ&.netコア

私は、ユーザーが、私が使用していますが存在するかどうかを確認するにはSystem.Web.Security;

を使用しています:サポートされていませんMembership.ValidateUser(u.UserName, u.Password);

を私は.net coreSystem.Web.Security;に移動したい - ので、代わりのMembership.ValidateUser(u.UserName, u.Password);を私は照会することを考えていましたdbとユーザが存在するかどうかをチェックしますが、dbのパスワードはハッシュされます。

ユーザーが存在するかどうかを確認するにはどうすればよいですか? dbに保存されているパスワードを復号化できますか? 私のオプションは何ですか?

ありがとうございました。

答えて

1

パスワードをハッシュし、次にdbに対して検証します。

ユーザーのパスワードを取得するasp.netでのメンバーシップAPIで
0

、あなたはこれを行うことによってそうすることができます

MembershipUser user = Membership.GetUser("username"); 
string password = user.GetPassword(); 
string saferPassword = user.GetPassword("password answer"); 

それは追加として、ユーザーのセキュリティの答えに渡す必要があり、後者がより安全ですチェック。これにより、暗号化されていないパスワードが与えられます(デフォルトのメンバーシップシステムはデータベースにハッシュされたパスワードを格納します)。

この機能をサポートするには、web.configでパスワードを有効にする必要があります。下のノードでこれを行うことができます。これは次のようになります。

<membership defaultProvider="myProvider"> 
     <providers> 
     <add connectionStringName="LocalSqlServer" enablePasswordRetrieval="true" 
      enablePasswordReset="true" requiresQuestionAndAnswer="true" 
      applicationName="/" requiresUniqueEmail="false" passwordFormat="Encrypted" 
      maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" 
      minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" 
      passwordStrengthRegularExpression="" name="myProvider" 
      type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 

    </providers> 

</membership> 

希望します。

NuGetがSystem.Web.Security.SqlMembershipProviderまたはSystem.Web.Securityのための任意のパッケージを見つけることができません

+0

コーディングハッピー。 –

関連する問題