2011-03-27 210 views
2

我已经使用Facebook C#SDK 5.0.8完成了“ASP.NET MVC 3网站入门”。一切正常。授权与权限

如何在用户之后请求额外的权限?

当我做了[Authorize(Permissions = "offline_access")],我得到'System.Web.Mvc.AuthorizeAttribute'不包含'Permissions'错误的定义。

如果我使用[FacebookAuthorize(Permissions = "offline_access")],页面会自动重定向到本身,而无需转到Facebook登录页面。

请帮忙!

谢谢

回答

0

所以Authorize属性不是Facebook C#SDK的一部分。该示例向您展示了如何结合Forms授权使用Facebook授权。 Authorize属性不包含名为permission的属性,也不能用于使用Facebook进行授权,它正在使用当前的ASP.NET成员资格提供程序检查权限。

关于FacebookAuthorize属性不起作用,那是因为您不能将两个场景混合在一起。基本上,您阅读的教程将向您展示如何以最简单的方式进行授权,而无需使用Javascript SDK等。您不应该在该教程中使用Facebook.Web或Facebook.Web.Mvc中的任何内容,因为它们不适合工作与表单身份验证。

我建议看看其他一些样品。 Y他们会帮助你开始一些更常见的场景,比如要求额外的权限。

+0

谢谢弥敦道! 可能只是我,但我无法从站点下载的示例文件夹或站点上的文档部分找到有关MVC身份验证的任何示例。网站上有一个“验证示例”页面,但它是空的。 是否有可能将我引导到几个示例页面? 非常感谢 – Leon 2011-03-28 14:34:47

+0

我刚刚发布了另一个教程。你应该看看它,我认为这更多是你需要的。 http://bit.ly/dSeX8I – 2011-03-28 17:31:34

4

我懂了!

这就是我需要“登录”作用下做的,要求提供备用权限:

var loginUri = oAuthClient.GetLoginUrl(new Dictionary<string, object> { { "state", returnUrl }, { "scope", "offline_access" } }); 
+0

如果你需要user_photos和friend_photos,它们都在scope参数下,你的代码是如何修改的? – Ryan 2011-08-18 19:22:27

+0

@Ryan - 使用逗号分隔的方法,并拥有您的所有权限。例如:{“scope”,“manage_pages,publish_stream”} – TimLeung 2011-09-03 02:39:09