2010-12-12 64 views
0

我下載了DotNetOpenAuth-3.5.0.10259並嘗試運行這些示例,特別是OAuthClient示例,並設法讓它與Facebook(VS2010)一起工作。允許在Facebook上訪問後,我可以看到「歡迎,[我的名字]」。dotnetopenauth client.ProcessUserAuthorization()的問題

當我嘗試在另一個項目中使用它時,問題就出現了。我得到一個「方法沒有重載」ProcessUserAuthorization'取'0'參數「和」方法沒有重載'RequestUserAuthorization'取'0'參數「。

它基本上是相同的代碼,我覺得它很奇怪,因爲它在包含的示例上工作,但不會在其他項目中編譯。

我錯過了什麼?

保護無效的Page_Load(對象發件人,EventArgs的)
{
IAuthorizationState授權= client.ProcessUserAuthorization();
如果(授權== NULL)
{
//脫掉授權請求
client.RequestUserAuthorization();
}

私人靜態只讀FacebookClient客戶=新FacebookClient
{
ClientIdentifier = ConfigurationManager.AppSettings [ 「facebookAppID」],
ClientSecret = ConfigurationManager.AppSettings [ 「facebookAppSecret」],
};

FacebookClient類來自於包含在3.5.0.10259下載中的示例中的DotNetOpenAuth.ApplicationBlock項目。

+0

我認爲答案將在於你沒有發佈的代碼的某些部分,你能提供更多嗎?代碼中「客戶」對象的類型是什麼?示例中的類型完全相同嗎? (不是派生類型或基類型)。 – 2010-12-15 16:26:44

+0

我更新了上面的代碼以包含「客戶端」的定義 – Andy 2010-12-17 04:10:32

回答

1

我唯一能猜到的是在庫中缺少重載定義。我遇到了你所描述的同樣的問題,但在我的情況下,我根本無法獲取樣本。

訣竅雖然是簡單地在一個NULL傳遞的請求參數,這似乎工作:

IAuthorizationState authorization = client.ProcessUserAuthorization(null); 

另外請注意,你可能會遇到同樣缺少超載問題與「RequestUserAuthorization」方法。同樣的,你也可以通過在每個三個參數的空值,如果你不想一起送他們:

client.RequestUserAuthorization(null, null, null); 

祝你好運!

+0

在我的情況下它不起作用。 – 2013-10-11 11:42:36