Я нашел этот пост http://facebooksdk.codeplex.com/discussions/244568 на codeplex. Я думаю, что это то, что вам нужно.
Обратите внимание, что вместо использования потока на стороне клиента необходимо использовать поток на стороне сервера.
Это то, что вы должны сделать
Создать ссылку для входа в систему на стороне сервера. После авторизации Facebook вернет URL-адрес, содержащий код вместо токена доступа.
Затем вы запрашиваете токен из Facebook, используя код. это мой пример
public ActionResult FBAuthorize()
{
FacebookOAuthClient cl = new FacebookOAuthClient(FacebookContext.Current);
FacebookOAuthResult result = null;
string url = Request.Url.OriginalString;
// verify that there is a code in the url
if (FacebookOAuthResult.TryParse(url, out result))
{
if (result.IsSuccess)
{
string code = result.Code;
// this line is necessary till they fix a bug *see details below
cl.RedirectUri = new UriBuilder("http://localhost:5000/account/FBAuthorize").Uri;
var parameters = new Dictionary<string, object>();
//parameters.Add("permissions", "offline_access");
Dictionary<String, Object> dict = (Dictionary<String, Object>)cl.ExchangeCodeForAccessToken(code, new Dictionary<string, object> { { "redirect_uri", "http://localhost:5000/account/FBAuthorize" } });
Object Token = dict.Values.ElementAt(0);
TempData["accessToken"] = Token.ToString();
return RedirectToAction ("ShowUser");
}
else
{
var errorDescription = result.ErrorDescription;
}
}
else
{
// TODO: handle error
}
return View();
}
* Ошибка при использовании IIS в localhost, подробности см. В исходном посте (uri перенаправления при запросе токена должно совпадать с используемым при запросе кода)
Настоятельно рекомендуется использовать IIS, а не веб-сервер visual studio. Есть много вещей, которые не будут работать на веб-сервере visual studio.