我通过将值发布到currentpage
来做一些事情来传递Facebook的反应 function testAPI() {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function (response) {
$.post('http://localhost:50790/TestPage.aspx',
{ fbid: response.id, firstname: response.first_name, lastname: response.last_name, email: response.email, bday: response.birthday },
function (result) {
});
console.log('Good to see you, ' + response.name + response.id + response.email + response.gender + response.birthday + '.');
});
}
我在后面的代码上做了一些检查:
protected void Page_Load(object sender, EventArgs e)
{
var fbid = Request.Form["fbid"];
var fname = Request.Form["firstname"];
var lname = Request.Form["lastname"];
var email = Request.Form["email"];
var bday = Request.Form["bday"];
if (!Page.IsPostBack)
{
if (fbid != null)
{
CheckFBLogin(fbid.ToString());
}
}
}
我的测试在CheckFBLogin
,如果结果没问题,它会让用户登录网站,否则它应该重定向到其他页面/注册页面。
public void CheckFBLogin(string Fbid)
{
CustomerSelfCareSoapClient service = new CustomerSelfCareSoapClient();
service.ClientCredentials.UserName.UserName = _Username;
service.ClientCredentials.UserName.Password = _Password;
GResult result = service.CheckFBLogin(Fbid.ToString(), "");
if (result != null)
{
if (result.Code == 100)
{
//login
}
else
{
Response.Redirect("~/callback.aspx", true);
}
}
}
我不知道发生了什么,我通常做这样的事情来检查登录但纯粹的asp和c#。我知道为什么页面不会重定向?
答案 0 :(得分:1)
我能够使用Mono复制此行为。在我的系统上,问题是jquery $ post()方法实际上在后面的代码中启用了Page.IsPostBack属性,以便if (!Page.IsPostBack) {}
条件中的所有逻辑都无法运行。
我的建议是使用ASP.NET的[WebMethod]属性和jquery。 Dave Ward has documented this well。如果您正在进行大量异步客户端JSON调用,那么如果项目的范围允许,您可以考虑ASP.NET的MVC实现。