現在、私は Facebook アプリに取り組んでおり、ASP.NET を使用して開発されています。
このアプリは、IE(7、8、および 9) FF および Chrome で正常に動作します。
最初のページは default.aspx で、認証を処理してから home.aspx にリダイレクトします。
唯一の問題は、Safari がクロスドメイン Cookie を受け入れないことです。Cookie の使用を避けるために、web.config ファイルを変更して追加しました。
その後、URL は http://www.testdomain.com/(S(gvsc2i45pqvzqm3lv2xoe4zm))/default.aspxになります。
default.aspx から home.aspx に自動的にリダイレクトすることはできません...
誰でも手がかりを得ましたか?
または、FacebookアプリでASP.Netセッションを使用してSafariを処理できる方法はありますか?
たくさんの感謝
PS。default.aspx ページのコード
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (!string.IsNullOrEmpty(Request.Params["signed_request"])) { string signed_request = Request.Params["signed_request"]; if (!string.IsNullOrEmpty(signed_request)) { // 署名付きリクエストをエンコードされた署名とペイロードに分割 string[] signedRequestParts = signed_request.Split('.'); 文字列encodedSignature = signedRequestParts[0]; 文字列ペイロード = signedRequestParts[1];
// decode signature
string signature = decodeSignature(encodedSignature);
// calculate signature from payload
string expectedSignature = hash_hmac(payload, Facebook.FacebookApplication.Current.AppSecret);
if (signature == expectedSignature)
{
// signature was not modified
Dictionary<string, string> parameters = DecodePayload(payload);
if (parameters != null)
{
string UserId = parameters["user_id"];
Session.Add("UserId", _SystemUser.SystemUserId);
Session.Add("Username", _SystemUser.Username);
Response.Redirect("Home.aspx?user_id=" + UserId);
}
}
}
}
if (!String.IsNullOrEmpty(Request["error_reason"])) // user denied your request to login
{
logger.Debug("Error Reason: " + Request["error_reason"]);
//User denied access
}
if (String.IsNullOrEmpty(Request["code"])) // request to login
{
string url1 = String.Format("https://www.facebook.com/dialog/oauth?client_id={0}&redirect_uri={1}&scope={2}", Facebook.FacebookApplication.Current.AppId, callbackUrl, ext_perms);
Response.Redirect(url1);
}
}
}