2014-01-06 11 views
7

私はMVC 5でASP.NET IDを使用してユーザーにログインするWebサイトを持っています。 すべてがうまくいきます。ASP.NET IDログイン

私のパートナーは、WinFormsアプリケーションで登録ユーザーにログインする必要があります。 誰でも、アイデンティティで使用されるalgorythmをハッシュするパスワードを知っていますか、またはどのようにしてWinFormsアプリケーションでユーザーを認証できますか?

ヒントがあります。

よろしくお願いいたします。

+0

2つの全く異なる認証方法ではありませんか。 asp.net IDは、Active Directoryを使用してユーザーを認証します。私はあなたがそのパスワードを取得できるとは思わない。 –

答えて

14

MVCアプリケーションからMicrosoft.AspNet.Identity.EntityFrameworkを使用していて、WinFormアプリケーションが同じデータベースにアクセスできる場合は、MVCアプリケーションと同じConnectionStringを使用するように設定する必要があります。 nugetを使用してWinFormアプリケーションにMicrosoft.AspNet.Identity.EntityFrameworkを追加します。しかし、パスワードハッシュを囲むのベストプラクティスが多い

public async Task<bool> VerifyUserNamePassword(string userName, string password) 
{ 
    var usermanager = new UserManager<IdentityUser>(new UserStore<IdentityUser>(new IdentityDbContext())); 
    return await usermanager.FindAsync(userName, password) != null; 
} 
+3

どうすればサインアウトできますか? – gog

+0

テキストのユーザー名はどのように取得できますか? 'User.Identity.Name'のように – Amir

+0

@gguiあなたはサインアウトする方法を理解しましたか?私は同じ問題を遭遇した – Izzy

0

あなたはSystem.Security.Cryptography.Net Winformsでしっかりハッシュパスワードを使用することができます

その後、次のコードは、ユーザー名とパスワードを確認するために使用することができます。現在、ハッシュされたパスワードに塩を追加するのが最善の方法です。これまで開発者は自分のソルトをデータベースに保存します。このプロジェクトが役立つことを祈ってください。

https://github.com/frankodoom/System.Security.Cryptography