私はタスクを開発しています(何もプロフェッショナルではなく、学習用です)、そこにはASP.NETでWebアプリケーションが、WPFで管理アプリケーションがあるアプリケーションがあります。これらのプロジェクトは、どちらも同じlocaldbデータベースに接続します。タスクは、非管理者だけがWebアプリケーションに登録できるようにすることですが、WPFアプリケーションの管理者も認証が必要です(また、Usersテーブルにもいくつかの依存関係があります)。ハッシュパスワードを使用して既存のLocalDBエントリを更新しますか?
ので、データベースは次のようである:
UsrName UsrPwd IsAdmin
admin NULL True
nonadmin kdjfgbjk False
私の問題があり、UsrPwd
のみは、BCセキュリティ上の理由のユーザー向けにパスワードをハッシュ化され含まれていること。今。非管理者だけがWebアプリケーションに登録するので、ハッシングのために管理者にパスワードを追加する方法がわかりません - SQL照会で管理者を追加しました(そのためUsrPwd
はNULL
です)。
私の質問は次のとおりです。管理者ユーザーのパスワードを更新するにはどうすればよいですか(システム管理者が最初のパスワードを入力したと思います)。ただし、ハッシュされたパスワードのみがデータベース?
ユーザーを登録してIsAdmin
をTrue
に変更してSQLを使って問題を解決しようと考えましたが、管理者ユーザー名にいくつかの外部キーの依存関係があるため、データベース)。
管理者ユーザーにパスワードを追加する方法はありますか?私は、ここのキーワードはある種のコード初のマイグレーション(多分?)かもしれないが、私はそれをどうやって行うのか、それが行く方法であれば、とは思っていない。
ありがとうございました!
EDIT
私は本当にアイデンティティもOWINまたはそのような事を使用していないよ、私はすべてがある:
SoftwareUser
はデータベースに基づいたエンティティを生成さ
using (SHA512CryptoServiceProvider provider = new SHA512CryptoServiceProvider())
{
passwordBytes = provider.ComputeHash(Encoding.UTF8.GetBytes(user.UserPassword));
}
_entities.SoftwareUser.Add(new SoftwareUser
{
UsrName = user.UserName,
UsrPwd = passwordBytes,
IsAdmin = false,
});
。
ASP.NETメンバーシップまたはアイデンティティを使用していますか?パスワードをハッシュしてメンバーシップを元に戻して再作成する方法のリンクはこちら http://stackoverflow.com/questions/1137368/what-is-default-hash-algorithm-that-asp-net-membership-uses – WithMetta
ここに投稿がありますIDの仕組みを説明する @stackoverflow.com/questions/20621950/asp-net-identity-default-password-hasher-how-does-it-work-and-is-it-secure – WithMetta
@WithMetta私はドン私はどちらかを使っていると思いますが、パスワードを手動でハッシュしています(ポストをコードで更新しました)。 –