目前我正在开发一个 Facebook 应用程序,它是使用 ASP.NET 开发的。
此应用程序适用于 IE(7,8 和 9)FF 和 Chrome。
第一个页面是 default.aspx,它将处理身份验证,然后重定向到 home.aspx
现在唯一的问题是 Safari 不接受跨域 cookie。我已更改 web.config 文件并添加它以避免使用 cookie。
之后,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('.'); 字符串编码签名 = 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);
}
}
}