如何在Microsoft.AspNet.Mvc.Facebook.FacebookAuthorize中动态设置权限?

Pan*_*kaj 5 asp.net-mvc facebook facebook-c#-sdk asp.net-mvc-3 asp.net-mvc-4

调节器

public partial class HomeController
{
     private static String[] userPermissions;
     public HomeController()
     {
          var MyPermission = Convert.ToString(TempData["MyPermission"]);
          userPermissions = (MyPermission).Split(',');
     }

     [Microsoft.AspNet.Mvc.Facebook.FacebookAuthorize(userPermissions)]
     public virtual ActionResult MyActionMethod()
     {
         return View();
     }
}
Run Code Online (Sandbox Code Playgroud)

超载

在此输入图像描述

编译错误

在上面的块中,我们有以下代码

[Microsoft.AspNet.Mvc.Facebook.FacebookAuthorize(userPermissions)]
Run Code Online (Sandbox Code Playgroud)

它给出了以下编译错误......

在此输入图像描述

Mat*_*hew -1

据我了解,您不能动态地将任何内容分配给属性参数(因为错误消息会备份)。

我与我的自定义会员提供商一起做了一些事情,我认为您可以调整以实现您的目标。我想要一个角色/权限设置来定义用户对系统各个部分的访问权限,而不需要向用户分配一堆单独的权限,但仍然可以非常精细地控制每个角色可以执行的操作。我遵循此处的方法(进行了一些更改)来完成此任务。

如果需要在您的场景中动态执行此操作,我将采取的方法是定义一个常量,Role在属性中使用FacebookAuthorizean ActionMethod,然后在处理您的权限检查传递(或查找)的数组中permissions对于每个“角色”。这样,您分配给的“角色”AuthorizeAttribute就是一个常量。