2010-12-19 29 views
1

Facebook C#SDKを使用してiframe Facebookアプリケーションを開発しています。複数のコントローラを持つASP.NET MVCアプリケーション

私は例を見て、コントローラで認証を行うには、コードのこの部分を見つける:

namespace Auth_And_Allow.Controllers 
{ 
    [HandleError] 
    public class HomeController : Controller 
    { 
     [CanvasAuthorize(Perms = "user_about_me")] 
     public ActionResult Index() 
     { 
      FacebookApp fbApp = new FacebookApp(); 
      if (fbApp.Session != null) 
      { 
       dynamic result = fbApp.Get("me"); 

       ViewData["Firstname"] = result.first_name; 
       ViewData["Lastname"] = result.last_name; 
      } 

      return View(); 
     } 
    } 
} 

しかし、私のアプリはたくさんを一個のコントローラ、その後以上を使用している場合、私は何をすべきでしょうか?

すべてのコントローラで同じ認証コードを使用する必要がありますか、別の方法がありますか? (私はそれがうまくいくことは分かっていますが、今私はFacebookのアプリケーションを構築するベストプラクティスを探しています)

答えて

1

CanvasAuthorize属性は、ユーザーがログインして適切な権限を持っていることを保証します。 Sessionがnullかどうかをチェックすることで、これを再度確認する必要はありません。さらに、CanvasAuthorize属性(通常のAuthorize属性など)は、コントローラだけでなくアクションにも適用できます。

[CanvasAuthorize(Perms = "user_about_me")] 
public class FirstController : Controller { 


} 

[CanvasAuthorize(Perms = "user_about_me")] 
public class SecondController : Controller { 

} 

は、あなたが参照さFacebook.Web.Mvc名前空間を持つコントローラ内部でthis.CanvasRedirectによってアクセスCanvasRedirectという名前のコントローラ拡張を使用することを確認します:私はちょうどこのような何かをするだろう。これらのリダイレクトヘルパーは、正しくリダイレ​​クトし、ユーザーのセッションを「失う」ことを確実にします。

+0

CanvasRedirectの部分がありませんでした – Ben

関連する問題