2013-01-03 78 views
0

我是5年的开发人员,所以我对asp.net并不陌生,但我对JQuery和JSON很陌生,所以也许这就是为什么我没有得到它。我在这里关注了如何成功用Facebook登录的教程,它的工作原理! http://www.codeproject.com/Articles/450535/Using-Facebook-login-in-ASP-NET-application-withou使用FB,ASP.NET和登录事件进行登录。怎么样?

但我的问题是,我在我的网站制作一个“意见”系统,我想用户输入他们的意见,然后右键下方点击“登录facebook”按钮,那么当它成功登录后,将它添加到评论列表中。

我唯一的问题是我不知道如何获得登录,以触发服务器端的C#代码。我在这里错过了一些东西,以便进入Facebook的“登录成功”事件?

我怀疑它是与这里的几行代码:

enter codedd here 

// This method will be called after the user login into facebook. 
    function OnLogin(response) { 
     if (response.authResponse) { 
      FB.api('/me?fields=id,name,gender,email,birthday', LoadValues);      
     } 
    } 

    //This method will load the values to the labels 
    function LoadValues (me) { 
     if (me.name) { 
      document.getElementById('displayname').innerHTML = me.name; 
      document.getElementById('FBId').innerHTML = me.id; 
      document.getElementById('DisplayEmail').innerHTML = me.email; 
      document.getElementById('Gender').innerHTML = me.gender; 
      document.getElementById('DOB').innerHTML = me.birthday; 
      document.getElementById('auth-loggedin').style.display = 'block'; 
         } 
    } 

或在这里:

<div id="fb-root"></div> <!-- This initializes the FB controls--> 
<div class="fb-login-button" autologoutlink="true" scope="user_birthday,email" > 
    Login with Facebook 
</div> <!-- FB Login Button --> 
<!-- Details --> 
<div id="auth-status">  
<div id="auth-loggedin" style="display: none"> 
    Hi, <span id="displayname"></span><br/> 
    Your Facebook ID : <span id="FBId"></span><br/> 
    Your Email : <span id="DisplayEmail"></span><br/> 
    Your Sex:, <span id="Gender"></span><br/> 
    Your Date of Birth :, <span id="DOB"></span><br/>   
</div> 
</div> 

任何线索或帮助将不胜感激。我是一个非常漫长的潜伏者(也许10年?),第一次海报。

回答

0

这是我想到的第一件事,它不是一个完美的解决方案,但它可能在这种情况下工作。简而言之,会触发一个带有虚拟按钮的回传功能,并在正确的位置点击它,并显示在正确的位置(而不是由用户点击)。

1)将一个asp.net按钮(runat = server)放在页面的某个地方。这将是一个虚拟按钮,只是为了触发回传,所以使其宽度= 0或类似的东西。让我们叫它btnDummmy。使ClientIDMode =静态

2)将服务器端事件附加到btnDummy。在那里放置你的服务器端注释保存逻辑。 评论应该在asp.net文本框(runat = server)中。

3)将btnDummy也放入updatePanel。 (这样你就不会失去的跨度值,显示名称,FBID,布拉布拉)

4)当你回电话btnDummy.click()之前使用Facebook登入在LoadValues(我)的结束;

这应该会诀窍...

+0

只要按钮被点击“登录”这是真棒的工作。我的下一个任务是查看是否可以从 提取任何想法? 感谢您的帮助到目前为止 – user1944720

+0

继续以同样的方式...添加5个更多的asp.net文本框或hiddenfields(这将更好)(txtdisplayname,txtFBId,...)的宽度为“0”(用户不可见)和clientidmodes是静态的。当您在LoadValues函数中填充标签时,还需填写那些文本框/隐藏字段。然后,当点击btnDummy时,你将能够读取它们的值... – erichste

+0

我做到了,但它似乎没有为我工作?我添加了 document.getElementById('trestid')。innerHTML = me.name; document.getElementById(“btnDummy”)。点击(); FB部分 – user1944720