2014-01-06 54 views
7

我有一個使用ASP.NET身份登錄用戶的MVC 5網站。 一切都很好。ASP.NET身份登錄

現在我的合作伙伴需要在他的WinForms應用程序中登錄註冊用戶。 有誰知道身份使用的密碼哈希algorythm或我如何在WinForms應用程序中驗證用戶?

任何提示將被折衷。

此致敬禮。

+0

這兩種完全不同的認證方式不是這兩種嗎? asp.net標識使用活動目錄來認證用戶。我不相信你可以找回那個密碼。 –

回答

14

如果您使用的是來自MVC應用程序的Microsoft.AspNet.Identity.EntityFramework,並且WinForm應用程序可以訪問相同的數據庫,那麼您應該將其配置爲使用與MVC應用程序相同的ConnectionString。 使用nuget將Microsoft.AspNet.Identity.EntityFramework添加到WinForm應用程序。

然後將下面的代碼可用於驗證用戶名和密碼:

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

可以在.Net Winforms安全哈希密碼使用System.Security.Cryptography但有很多周圍的密碼散列最佳實踐。目前最好的方法是在你的哈希密碼中加入一個salt,這使得它很難破解。以前,開發人員會將他們的Salt存儲在數據庫中,就像在腳下開槍一樣。看看這個項目希望它有幫助。

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