2010-08-12 76 views
6

我正在使用DotNetOpenAuth登錄到Facebook
下面是代碼:如何設置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); 
     } 
    } 
} 

由於我使用自定義URL重寫,我登錄後收到一個錯誤,因爲返回的URL是一樣的東西

〜/富/ foo.aspx ?labg = EN

,我希望它硬編碼它

〜/富/富

任何幫助,將不勝感激

回答

6

你需要一個回調URL來初始化AuthorizationState對象,並傳遞到一個稍微不同的方法:

// Kick off authorization request 
var authorizationState = new AuthorizationState() 
{ 
    Callback = new Uri(Request.Url, Page.ResolveUrl("~/foo/foo")); 
}; 
facebookClient.PrepareRequestUserAuthorization(authorizationState).Send();