[英]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.