Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Facebook身份验证和Asp.Net成员资格_C#_Asp.net_Facebook - Fatal编程技术网

C# Facebook身份验证和Asp.Net成员资格

C# Facebook身份验证和Asp.Net成员资格,c#,asp.net,facebook,C#,Asp.net,Facebook,我正在尝试将facebook身份验证与asp.net站点集成 因此,如果用户决定在该网站注册,他们可以使用他们的facebook凭据进行注册 我现在有了facebook访问令牌和用户详细信息,但不知道该怎么做 该网站使用asp.net成员身份授权 这是我认为在新用户决定注册时应该发生的事情:(但不确定这是否是正确的做法) 0)用户访问该网站并决定使用其facebook凭据进行注册。 1) 用户提供者提供他们的凭据,我收到一个访问令牌和他们的用户信息。 2) 我将此信息存储在数据库中,并使用收到的

我正在尝试将facebook身份验证与asp.net站点集成

因此,如果用户决定在该网站注册,他们可以使用他们的facebook凭据进行注册

我现在有了facebook访问令牌和用户详细信息,但不知道该怎么做

该网站使用asp.net成员身份授权

这是我认为在新用户决定注册时应该发生的事情:(但不确定这是否是正确的做法)

0)用户访问该网站并决定使用其facebook凭据进行注册。
1) 用户提供者提供他们的凭据,我收到一个访问令牌和他们的用户信息。
2) 我将此信息存储在数据库中,并使用收到的数据创建asp.net成员资格用户(此时我必须生成密码)。
3) 将用户登录到该站点,以便他可以自由导航

如果我在正确的路径上,以及如何生成密码,我将非常感谢您的建议。(我在想,也许可以将电子邮件和facebook用户ID结合起来,检索一个散列并存储。)

谢谢

更新1
我发现他们建议在哪里使用的问题是:


我认为你的方法是正确的;有效的做法是用收到的facebook id替换用户名/密码身份验证,并让该id作为有效标识符在应用程序中传递

你说你需要在你的应用程序中生成一个密码,我注意到这是完全确定的。确实,就ASP.NET中的成员资格提供商而言,您需要使用密码创建用户,但如果您只希望用户使用facebook连接登录,则可以选择填写随机字符串

决定绑定到哪一个facebook属性也值得考虑一下。当然,自然的选择是facebook标识符,因为这对用户来说是不公平的,但如果您选择稍后允许其他身份验证机制(google open id for one),您还可以从存储来自facebook的电子邮件等方面获益


也许在你的应用程序中自动生成一个facebook没有定义的用户名也是个好主意。如果你选择facebook标识符作为登录名,你对facebook的依赖性很强,因此很难引入新的身份提供者。如果您选择一个随机标识符和一个关联表来建立facebook id和您的id之间的连接,您以后也会获得一些灵活性。如果您想从ASP.NET登录控件(如LoginStatus等)中获得有意义的输出,选择限制性更强的电子邮件地址可能是一个更好的选择。

我还没有阅读下面/上面的响应,因此这可能已被涵盖,但请注意,我遇到了一个严重的问题,没有从IE中的iframe中设置Cookie那是一场血腥的噩梦。我不确定这是否已经修复,是否可以修复,但请注意我的经验,并在所有浏览器中进行彻底测试

还要检查项目。我没有亲自使用过它,但它应该支持OAuth以及OpenId和ICards,这在以后的其他集成点上可能会有所帮助