2010-05-03 65 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;