facebook asp.net页面重定向 - 无法做响应重定向

时间:2011-12-09 19:02:23

标签: asp.net facebook authentication

我需要一些指导。我创建了一个default.aspx页面,其中显示了用户的名字,但也包含一个重定向到result.aspx页面onclick的按钮。似乎每次我点击按钮时都会出现无限循环错误。我应该如何page_load result.aspx来完成这项工作?

以下是default.aspx的代码:

string appId = "xxxxxxxxxxxxxxxxxxx";
string appSecret = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
FacebookCookie cookie = null;
FacebookClient app = new FacebookClient();
FacebookOAuthClient oAuth = new FacebookOAuthClient();
// FacebookWebClient apps = new FacebookWebClient();
FacebookApp apps = new FacebookApp();

string myRedirect_uri = "http://www.mydomain.com";
protected void Page_Load(object sender, EventArgs e)
{
    if(apps.Session != null)
    //if (IsConnected())
    {
        display(apps.AccessToken);
    }
    else
    {
        Response.Redirect("https://www.facebook.com/dialog/oauth?client_id=" + appId + "&redirect_uri=http://www.mydomain.com&scope=email");
        name.Text = "no connected";
    }


}
public bool IsConnected()
{
    if (cookie == null)
        cookie = FacebookCookie.GetCookie(appId, appSecret);
    return cookie != null && cookie.UserId != 0 && !string.IsNullOrEmpty(cookie.SessionKey);
}
protected void display(string token)
{
    FacebookClient thisclient = new FacebookClient(token);
    dynamic dname = thisclient.Get("me");
    name.Text = dname.name;
    imgProfile.ImageUrl = "http://graph.facebook.com/" + dname.id + "/picture?type=large";
}
protected void btn_Click(object sender, EventArgs e)
{
    Response.Redirect("~/resutl.aspx");
}

1 个答案:

答案 0 :(得分:0)

此行将在每个请求中实例化:

FacebookApp apps = new FacebookApp();
你意识到了吗?那是你要的吗?

我问,因为你在Page_Load下来了:

if(apps.Session != null)

这似乎总是正确的,因为apps是一个新的实例,可能是一个新的Session。换句话说,else上的Page_Load阻止将永远无法触发。但这不仅仅是这里的重点。

所以在我看来应用程序加载正常,你点击按钮,调用btn_Click处理程序,用户被重定向到resutl.aspx,然后result.aspx必须做导致用户被重定向到default.aspx的东西,例如,可能检查用户是否经过身份验证。

您使用的是哪种身份验证?