【问题标题】:How to set return url for DotNetOpenAuth如何为 DotNetOpenAuth 设置返回 url
【发布时间】:2010-08-12 10:01:56
【问题描述】:

我正在使用 DotNetOpenAuth 登录 Facebook
代码如下:

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/foo.aspx?labg=zh

我希望它硬编码为

~/foo/foo

任何帮助将不胜感激

【问题讨论】:

    标签: c# asp.net dotnetopenauth


    【解决方案1】:

    您需要使用回调 URL 初始化 AuthorizationState 对象并将其传递给稍微不同的方法:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-09
      • 2018-10-28
      • 2021-05-17
      • 2013-04-24
      • 1970-01-01
      • 2011-06-17
      • 2013-04-05
      • 1970-01-01
      相关资源
      最近更新 更多