2014-01-06 61 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