Я использую Facebook C # SDK.Это основано на примере ASPNet-MVC3-JsSdk.В моем приложении у меня есть стандартный код Javascript (по большей части взятый непосредственно из примера приложения).
function facebooklogin() {
FB.login(function (response) {
if (response.authResponse) {
alert(window.location.pathname);
// user authorized
window.location = window.location.origin + "/Account/FacebookLogon" + "?returnUrl=" + window.location.pathname;
} else {
// user cancelled
}
}, { scope: "@ScoreTrack.Controllers.AccountController.ExtendedPermissions"});
};
Я в основном хочу перенаправить на свое действие контроллера Account.FacebookLogon()
, где я проверяю авторизациюи если пользователь авторизовал приложение, то я установил cookie / токен FormsAuthentication.
public ActionResult FacebookLogon(string returnURL)
{
var fbWebContext = new FacebookWebContext(FacebookApplication.Current, ControllerContext.HttpContext); // or FacebookWebContext.Current;
if (fbWebContext.IsAuthorized(@MyApp.Controllers.AccountController.ExtendedPermissions.Split(',')))
{
// If the User is Logged in and Authorized
var fbwc = new FacebookWebClient();
dynamic me = fbwc.Get("me");
FormsAuthenticationTicket authTicket = new
FormsAuthenticationTicket(1, //version
me.username, // user name
DateTime.Now, //creation
DateTime.Now.AddMinutes(30), //Expiration
false, //Persistent
me.username);
string encTicket = FormsAuthentication.Encrypt(authTicket);
this.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
}
return Redirect(Url.Content("~/" + returnURL));
}
Все работает фантастически, вплоть до момента:
Я нажимаю на кнопку входа в Facebook...
- У меня появляется экран авторизации. Я нажимаю «Вход»
- Я разрешаю расширенные разрешения (используя новую расширенную аутентификацию)
- Javascript перенаправляет меня наМой
AccountController.FacebookLogon()
метод FacebookLogon()
метод проверяет, авторизован ли Facebook, а C # SDK говорит, что это не так.
Что такое Интернет?или FacebookC # SDK ребята?или другие умные программисты из Facebook на C #?
Какого черта?
Кто-нибудь?