0

誰かがこれを手伝ってくれたら。

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; 

ただし、RoleSessionVar = "Administrators" であっても、ckfinder はフォルダーやファイルを表示しません。

この問題を解決するための光にとても感謝しています。

バイロン

4

2 に答える 2

1

You need to do

Session["RoleSessionVar"] = currentRole;

于 2010-05-15T11:32:51.200 に答える