MVC密码格式:哈希,验证用户而无需输入用户名/密码

3
我正在开发一个MVC C#模块,其中用户创建密码格式设置为哈希。现在,我除了普通的登录外还有一个Facebook登录模块。如果用户名相同,这个Facebook登录将与普通登录合并。
我的问题是,当我合并Facebook登录时,这两个账户将共享相同的密码。我可以获取返回用户名和密码的用户,并使用Membership.ValidateUser进行验证。但由于密码被哈希,我无法验证Facebook登录的密码。我需要先解密它吗,还是有其他的想法?

1
你无法“解密”一个哈希密码。 - David Peden
你应该加密密码而不是哈希,这样你就可以解密回来。 - bitoshi.n
你实际上是在存储Facebook登录详细信息吗?我以为你只是得到了登录令牌来使用? - sisve
不,我没有存储Facebook登录详细信息。如果Facebook登录与普通用户合并,则会共享与普通用户相同的登录信息。 - user777310
这个怎么样?如何在不使用哈希的情况下使用 Membership.ValidateUser() 进行密码验证,因为当我获取它时,它已经是哈希格式了。 - user777310
1个回答

1

实际上,您根本不需要担心密码。您只需获取与 Facebook 帐户关联的用户,然后手动验证该用户即可。

var userName= YourRepository.GetUsernameByFacebookId(returnedFacebookId);
FormsAuthentication.SetAuthCookie(userName);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接