如何登录使用DotNetOpenAuth

问题描述:

var facebookClient = new FacebookClient 
{ 
    ClientIdentifier = "appId", 
    ClientSecret = "appSecret" 
}; 
IAuthorizationState authorization = facebookClient.ProcessUserAuthorization(); 
if (authorization == null) 
{ 
    // Kick off authorization request 
    facebookClient.RequestUserAuthorization(); 
} 
else 
{ 

    var request = 
     WebRequest.Create("https://graph.facebook.com/me?access_token=" + 
         Uri.EscapeDataString(authorization.AccessToken)); 

    using (var response = request.GetResponse()) 
    { 
     using (var responseStream = response.GetResponseStream()) 
     { 
      var graph = FacebookGraph.Deserialize(responseStream); 
      lblFacebookUserName.Text = HttpUtility.HtmlEncode(graph.Name); 
     } 
    } 
} 

行至Facebook如何登录使用DotNetOpenAuth

IAuthorizationState authorization = facebookClient.ProcessUserAuthorization(); 

总是返回null

+0

注意,在DotNetOpenAuth.ApplicationBlock的新版本,ClientSecret不存在。它现在应该如下所示:FacebookClient fbClient = new FacebookClient {ClientIdentifier =“appId”, ClientCredentialApplicator = ClientCredentialApplicator.PostParameter(“appSecret”) }; – 2015-11-14 06:54:26

我不是专家,但不是因为你总是有它从来没有一个新的FacebookClient请求用户授权?您的工作流程觉得奇怪,我...

这是否有任何区别:

var facebookClient = new FacebookClient 
{ 
    ClientIdentifier = "appId", 
    ClientSecret = "appSecret" 
}; 
// Kick off authorization request, as have a new client that needs to be authorised 
facebookClient.RequestUserAuthorization(); 
// get the result of the authorization 
IAuthorizationState authorization = facebookClient.ProcessUserAuthorization(); 
if (authorization == null) 
{ 
    //throw not authorized exception or whatever 
} 
else 
{ 
    var request = 
     WebRequest.Create("https://graph.facebook.com/me?access_token=" + 
         Uri.EscapeDataString(authorization.AccessToken)); 

    using (var response = request.GetResponse()) 
    { 
     using (var responseStream = response.GetResponseStream()) 
     { 
      var graph = FacebookGraph.Deserialize(responseStream); 
      lblFacebookUserName.Text = HttpUtility.HtmlEncode(graph.Name); 
     } 
    } 
} 
+0

你有这个工作吗?你可以发布一些代码吗? – user1186651 2013-04-13 23:33:36