Как установить возвращаемый URL для DotNetOpenAuth - PullRequest
6 голосов
/ 12 августа 2010

Я использую 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, после входа в систему я получаю сообщение об ошибке, потому что возвращаемая ссылка имеет вид

~ / Foo / foo.aspx? Labg = еп

и я хочу, чтобы это было жестко закодировано

~ / Foo / Foo

Любая помощь будет оценена

1 Ответ

6 голосов
/ 12 августа 2010

Вам нужно инициализировать объект AuthorizationState URL-адресом обратного вызова и передать его немного другому методу:

// Kick off authorization request
var authorizationState = new AuthorizationState()
{
    Callback = new Uri(Request.Url, Page.ResolveUrl("~/foo/foo"));
};
facebookClient.PrepareRequestUserAuthorization(authorizationState).Send();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...