FacebookのC#SDKで、Facebookの会員に依存しているASP.NET MVC(3.0)Webアプリケーションの「流れ」を制御するには?

StackOverflow https://stackoverflow.com/questions/4610851

  •  25-09-2019
  •  | 
  •  

質問

私は完全に標準のASP.NETメンバーシップシステムを削除し、唯一の私のWebアプリのメンバーシップのためのFacebookを使用したいです。 の注意、これはFacebookのキャンバスアプリの問題ではありません。

一般的には、ASP.NETアプリケーションであなたはアプリの「流れ」を制御するために、いくつかのキープロパティ&メソッドを持っています。特に:Request.IsAuthenticated、(MVCアプリケーションにおいて)[Authorize]Membership.GetUser()Roles.IsUserInRole()、とりわけ。 [FacebookAuthorize][Authorize]と同等であるように見えます。 fbApp.Session != nullは、基本的にRequest.IsAuthenticatedと同じですか?

また、私は自分のサイト内のすべてのコントローラにわたって行ういくつかの標準的な作業があります。 OnActionExecuting(FilterContext)をオーバーライドするBaseControllerを構築し、私はそう。一般的に、私はこのアクション内でのユーザのプロファイルとのViewDataを取り込みます。私はこのアクションでfbApp.Get("me")への呼び出しを行った場合しまうのパフォーマンスが低下?

私はいいと簡単です登録を行うにはFacebookのJavascriptのSDKを使用します。しかし、それは、すべてのクライアント側だし、サーバー側の対クライアント側のFacebookの電話を使用するとき、私は周りに私の心を包む苦労しています。私は、ユーザーのFacebookのUIDを取得し、データのいくつかの他のビットと一緒に「プロファイル」テーブルに保存する必要があるときにポイントがあります。それはおそらく最良の登録プラグインからの戻りURL上で処理されるだろう...正しい?

サイドノートでは、どのようなデータがfbApp.Get("me")から返される?

役に立ちましたか?

解決

FacebookのC#SDKを使用すると、記述のように認証を処理します[FacebookAuthorize]と呼ばれるアクションフィルタを提供します。そして、はい、fbApp.Request == nullは、ユーザーが認証されるかどうかを判断するための正しい方法です。私はそれを容易にするためにisAuthenticatedと呼ばれる次のリリースにプロパティを追加すると思う。

あなたはログイン用のJavascript SDKを使用して正しいです。基本的には、Javascriptの側はFacebookAppの読み取りと検証というクッキーを作成する方法、それは作品です。非キャンバスアプリのためには、基本的にはJavascriptのSDKを使用する必要があります。あなたはOAuthを持つすべて手動でそれを行うことができ、それは巨大な痛みになります。

そしてfbApp.Getの結果について(「私」)は、結果はJsonObjectです。あなたはそれを2つの方法でアクセスすることができます:

// Using dynamic (.Net 4.0 only)
var app = new FacebookApp();
dynamic me = app.Get("me");
string firstName = me.first_name;
string lastName = me.last_name;
string email = me.email;

// Using IDictionary<string, object> (.Net 3.5, .Net 4.0, WP7)
var app = new FacebookApp();
var me = (IDicationary<string,object>)app.Get("me");
string firstName = (string)me["first_name"];
string lastName = (string)me["last_name"];
string email = (string)me["email"];

私たちは、 CodePlexにウィキに。

に多くのコードサンプルを持っています
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top