ASP.NET成员资格/自动记录现有用户

时间:2011-10-10 23:12:05

标签: c# asp.net asp.net-membership

我使用Facebook允许用户登录网站。管理登录的页面将获取用户的facebook id,然后在ASP.NET成员资格表中查找具有匹配ID的预先存在的用户。

不匹配:创建并登录新用户(没问题)。

匹配:我想登录用户。问题是我有哈希密码,我无法使用MembershipService.ValidateUser(logOn.UserName, logOn.Password)来登录用户。

如果我只使用FormsAuthentication.SetAuthCookie,则用户不会显示为已登录。

我可以在web配置中将enablePasswordRetrieval设置为true,然后只获取实际密码,但我不想这样做。我希望这是安全的。

有没有人知道使用用户名将用户登录到ASP.NET成员资格的方法?我已经查看了MembershipProvider类的替代方法,但我找不到。

谢谢,

奥利弗

2 个答案:

答案 0 :(得分:2)

您可以尝试设置Cookie的FormsAuthentication.RedirectFromLoginPagehttp://msdn.microsoft.com/en-us/library/ka5ffkce.aspx)(我相信,尽管您可能需要手动设置Cookie),然后重定向到指定页面以重定向(指定)在auth设置的配置文件中)。基本上,在设置cookie之后,您必须在设置之后进行重定向或回发,因为它看起来不像应用程序已启用您的身份验证。

HTH。

答案 1 :(得分:0)

我认为您可以尝试创建自己的包含自定义身份验证票证的身份验证Cookie。

请参阅此msdn文章,了解如何创建自己的身份验证票证和cookie

http://msdn.microsoft.com/en-us/library/ff649204.aspx