我下载了DotNetOpenAuth-3.5.0.10259并尝试运行示例,特别是OAuthClient示例,我设法让它与facebook(VS2010)一起使用。允许访问facebook后,我可以看到“欢迎,[我的名字]”。
当我尝试在另一个项目中使用它时,问题出现了。我得到一个“没有重载方法'ProcessUserAuthorization'接受'0'参数”和“没有重载方法'RequestUserAuthorization'接受'0'参数”。
它基本上是相同的代码,我发现它非常奇怪,因为它适用于包含的示例但不会在其他项目中编译。
我错过了什么?
protected void Page_Load(object sender,EventArgs e)
私人静态只读FacebookClient客户端=新FacebookClient
{
IAuthorizationState authorization = client.ProcessUserAuthorization();
if(authorization == null)
{
//启动授权请求
client.RequestUserAuthorization();
}
{
ClientIdentifier = ConfigurationManager.AppSettings [“facebookAppID”],
ClientSecret = ConfigurationManager.AppSettings [“facebookAppSecret”],
};
FacebookClient类来自3.5.0.10259下载中包含的样本中的DotNetOpenAuth.ApplicationBlock项目。
答案 0 :(得分:1)
我唯一可以猜到的是库中缺少重载定义。我遇到了你所描述的相同问题,但在我的情况下,我根本无法编译样本。
然而,技巧是简单地为请求参数传入NULL,这似乎有效:
IAuthorizationState authorization = client.ProcessUserAuthorization(null);
另请注意,使用“RequestUserAuthorization”方法可能会遇到相同的缺失重载问题。同样,如果您不想发送它们,也可以为三个参数中的每个参数传递空值:
client.RequestUserAuthorization(null, null, null);
祝你好运!