誰かがこれを手伝ってくれたら。
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 はフォルダーやファイルを表示しません。
この問題を解決するための光にとても感謝しています。
バイロン