簡體   English   中英

具有多個控制器的Facebook ASP.NET MVC App

[英]Facebook ASP.NET MVC App with multiple controllers

我正在使用Facebook C#SDK開發iframe Facebook應用程序。

我看了一下示例,發現這段代碼可以在控制器中進行授權:

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應用程序的最佳實踐)

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的Controller擴展。 這些重定向助手將確保您正確重定向,並且不會“丟失”用戶的會話。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM