サードパーティ認証 (facebook) を使用して Web アプリケーションにログインしたいと考えています。私はこのタイプのコードを取得するためにグーグルで検索しています.ほとんどのユーザーはそれが機能しているが私にとっては機能していないと言いました. 次のコードを使用します。
ConnectAuthentication クラス
public class ConnectAuthentication { public static bool isConnected() { return (SessionKey != null && UserID != -1); } public static string ApiKey { get { return System.Configuration.ConfigurationManager.AppSettings["ApplicationKey"]; } } public static string SecretKey { get { return System.Configuration.ConfigurationManager.AppSettings["SecretKey"]; } } public static string SessionKey { get { return GetFacebookCookie("session_key"); } } public static int UserID { get { int userID = -1; int.TryParse(GetFacebookCookie("user"), out userID); return userID; } } private static string GetFacebookCookie(string cookieName) { string retString = null; string fullCookie = ApiKey +"_" + cookieName; if (HttpContext.Current.Request.Cookies[fullCookie] != null) retString = HttpContext.Current.Request.Cookies[fullCookie].Value; return retString; }
}
FBLogin.js
function CallFB() {
FB.ensureInit(function () { FB.XFBML.Host.parseDomTree(); });
FB.init("203596266327066", "http://localhost:61283/xd_receiver.htm");
}
function FBLogOut() {
FB.ensureInit(function () { FB.XFBML.Host.parseDomTree(); });
FB.init("203596266327066", "http://localhost:61283/xd_receiver.htm");
if (FB.Connect != null)
FB.Connect.logout();
}
Default.aspx - 開始ページ
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"></script> <script src="js/jquery-1.4.1.js" type="text/javascript"></script> <script type="text/javascript" src="JS/fblogin.js"></script> <script type="text/javascript"> $(document).ready(function () { CallFB(); }); </script> <form id="form1" runat="server"> <div> <br /> <div id="facebk" style="height: 5px;"> <fb:login-button length='long' onlogin='window.location.reload()' size='medium'> </fb:login-button> </div> </div> </form>
3.Default.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (ConnectAuthentication.isConnected())
Response.Redirect("AuthUser.aspx");
}
AuthUser.aspx - 認証されたユーザーのみにアクセス
$(document).ready(function () { $("#btn").click(function () { FBLogOut(); }); });