2011-12-09 122 views
0

我需要一些指导。我创建了一个default.aspx页面,该页面显示用户的名字,但也包含一个重定向到result.aspx页面onclick的按钮。似乎每次我点击按钮,我都会遇到无限循环错误。我应该怎么做page_loadresult.aspx才能使用作品?facebook asp.net页面重定向 - 无法做出响应重定向

下面是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"); 
} 

回答

0

这条线将在每次请求的实例:

FacebookApp apps = new FacebookApp(); 

你知道吗?那是你要的吗?

我问,因为在Page_Load下您有:

if(apps.Session != null) 

这似乎永远是真实的,因为应用程序是大概一个新的Session一个新的实例。换句话说,Page_Load上的else块永远不会着火。但这不仅仅是重点。

所以,在我看来,应用负载罚款,你点击该按钮,btn_Click处理程序被调用,用户被重定向到resutl.aspx然后result.aspx必须做的事情使用户被重定向到default.aspx像例如,可能检查用户是否被认证。

您使用的是什么样的身份验证?