2010-05-03 59 views
0

如果有人可以帮助这个请。ckfinder不会识别角色?

我想将ckeditor和ckfinder合并到一个Asp.Net Mvc 1项目中。迄今为止一切工作正常。唯一不能正常工作的是ckfinder的访问控制。

据我所知,在文件ckfinder/config.ascx中,变量字符串RoleSessionVar用于分配要限制的角色。默认值是:

RoleSessionVar = "CKFinder_UserRole"; 

我在我的项目管理员,编辑和贡献者中有树角色。因此,为了获得我当前的用户角色,我将其替换为:

string currentRole= ""; 

    if(HttpContext.Current.User.IsInRole("Administrators")) 
    { 
     currentRole = "Administrators"; 
} 
    else 
    { 
     if (HttpContext.Current.User.IsInRole("Editors")) 
      currentRole = "Editors"; 
     else 
     { 
      if (HttpContext.Current.User.IsInRole("Contributors")) 
      { 
       currentRole = "Contributors"; 
      } 
     } 
    } 


    RoleSessionVar = currentRole; 

变量被赋予当前用户的正确角色。 config.ascx文件的下一部分是ACL设置。默认的是:

AccessControl acl = AccessControl.Add(); 
    acl.Role = "*"; 

acl.ResourceType =“*”; acl.Folder =“/”;

acl.FolderView = true; 
    acl.FolderCreate = true; 
    acl.FolderRename = true; 
    acl.FolderDelete = true; 

    acl.FileView = true; 
    acl.FileUpload = true; 
    acl.FileRename = true; 
    acl.FileDelete = true; 

通过这些设置不会有,但与大家完全权限的ckfinder,它列出了所有的文件夹和文件的任何问题。我想限制对不同角色的删除权限。反正只是作为测试我试图充分权限管理员角色

AccessControl acl = AccessControl.Add(); 
    acl.Role = "Administrators"; 

acl.ResourceType =‘*’; acl.Folder =“/”;

acl.FolderView = true; 
    acl.FolderCreate = true; 
    acl.FolderRename = true; 
    acl.FolderDelete = true; 

    acl.FileView = true; 
    acl.FileUpload = true; 
    acl.FileRename = true; 
    acl.FileDelete = true; 

但ckfinder不会显示任何文件或文件夹,即使RoleSessionVar =“管理员”。

对于解决这个问题我会非常感谢。

拜伦

回答

1

你需要做的

会议[ “RoleSessionVar”] = currentRole;

0

您应该尝试:

Session [“CKFinder_UserRole”] = currentRole;