现在使用新的mvc4可以让我们使用facebook oauth otb。
我在facebook中创建了一个新的应用程序,并围绕要求用户电子邮件地址/位置的权限设置了一些额外的要求。生日。
我保存了fb中的更改,当点击预览身份验证对话框时,我可以看到我想要在预览窗口中显示的额外权限。
当我尝试对facebook进行身份验证时,我不会被问到是否允许我在facebook中设置的额外字段。
我的mvc应用程序中是否还有其他内容需要更改以将这些额外要求传递给Facebook?
感谢您的帮助。
答案 0 :(得分:3)
您似乎必须编写自己的自定义提供程序。如果是这样,你应该看看 http://blogs.msdn.com/b/webdev/archive/2012/08/23/plugging-custom-oauth-openid-providers.aspx 和 http://blog.mrroa.com/post/30454808112/asp-net-custom-linkedin-oauth-provider
我的工作是:
在AccountController
中:
- 我使用Facebook添加; (facebook.dll
来自www.csharpsdk.org)
同样在AccountController
中,在ExternalLoginCallback
中找到:
在这里,我使用facebook c#sdk在调用CreateOrUpdateAccount
之前要求额外的权限。
我不认为这是最好的解决方案,但它有效。
答案 1 :(得分:1)
我在facebook中创建了一个新的应用程序,并围绕要求用户电子邮件地址/位置的权限设置了一些额外的要求。生日。
我保存了fb中的更改,当点击预览身份验证对话框时,我可以看到我想要在预览窗口中显示的额外权限。
当我尝试对facebook进行身份验证时,我不会被问到是否允许我在facebook中设置的额外字段。
这听起来像是另一个对 Authenticated Referrals 实际上做的事情感到困惑的人。 (应用设置中的权限字段仅适用于那些!)
当用户点击在Facebook上重定向到您应用的任何链接时,经过身份验证的引荐即可发挥作用。
但是,如果您自己进行登录,则必须使用scope
参数询问所需的权限。
答案 2 :(得分:0)
不幸的是,如果你在MVC 4附带的FacebookClient类上使用ILSpy,你可以看到即使底层的DotNetOpenAuth类支持它,MS代码也不会请求电子邮件信息。
因此,您需要实现自己的FacebookClient类,它几乎完全相同,但在电子邮件地址中添加了所请求的项目。我现在正在尝试这个,并希望尽快让它工作。