【问题标题】:Problem with dotnetopenauth client.ProcessUserAuthorization()dotnetopenauth client.ProcessUserAuthorization() 的问题
【发布时间】:2011-05-24 04:12:25
【问题描述】:

我下载了 DotNetOpenAuth-3.5.0.10259 并尝试运行示例,特别是 OAuthClient 示例,我设法让它与 facebook (VS2010) 一起使用。允许在 facebook 中访问后,我可以看到“欢迎,[我的名字]”。

当我尝试在另一个项目中使用它时,问题就出现了。我得到一个“方法'ProcessUserAuthorization'没有重载需要'0'参数”和“方法'RequestUserAuthorization'没有重载需要'0'参数”。

它基本上是相同的代码,我觉得很奇怪,因为它适用于包含的示例,但不会在其他项目中编译。

我错过了什么?

protected void Page_Load(object sender, EventArgs e)
{
IAuthorizationState 授权 = client.ProcessUserAuthorization();
if (授权 == null)
{
// 启动授权请求
客户端.RequestUserAuthorization();
}

私有静态只读 FacebookClient 客户端 = 新 FacebookClient
{
ClientIdentifier = ConfigurationManager.AppSettings["facebookAppID"],
ClientSecret = ConfigurationManager.AppSettings["facebookAppSecret"],
};

FacebookClient 类来自 3.5.0.10259 下载中包含的示例中的 DotNetOpenAuth.ApplicationBlock 项目。

【问题讨论】:

  • 我认为答案将在于您尚未发布的代码的某些部分,您能提供更多吗?您的代码中“客户端”对象的类型是什么?示例中的类型是否完全相同? (不是派生或基本类型)。
  • 我更新了上面的代码,加入了“client”的定义

标签: asp.net facebook webforms dotnetopenauth


【解决方案1】:

我唯一能猜到的是库中缺少重载定义。我遇到了您描述的相同问题,但就我而言,我根本无法编译示例。

不过,诀窍是简单地为请求参数传入一个 NULL,这似乎有效:

IAuthorizationState authorization = client.ProcessUserAuthorization(null);

另请注意,您可能会遇到与“RequestUserAuthorization”方法相同的缺失重载问题。同样,如果您不想一起发送三个参数,也可以为每个参数传入空值:

client.RequestUserAuthorization(null, null, null);

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多