この投稿に関連してControl VisualSVN Server from C#
特定のフォルダーに対するユーザー権限を管理しようとしています。
リポジトリ自体の管理については、すべて正常に機能しています。
しかし、リポジトリのManagementBaseObject
代わりに「オブジェクト」パラメータを変更しようとするとすぐに、例外が発生します。ManagementObject
サーバーの新しいバージョンで同じことを行う新しい方法があることを知っています(参照されたオブジェクトの代わりにパスを使用)
//ManagementBase object related to the folder is not null and is already retrieved at this step
ManagementClass userClass = new ManagementClass("root\\VisualSVN", "VisualSVN_User", null);
ManagementClass authzClass = new ManagementClass("root\\VisualSVN", "VisualSVN_SecurityDescriptor", null);
ManagementClass permClass = new ManagementClass("root\\VisualSVN", "VisualSVN_PermissionEntry", null);
ManagementObject userObject = VisualSVN_User.instances[str].Mo;
ManagementObject permObject = permClass.CreateInstance();
permObject.SetPropertyValue("Account", userObject);
permObject.SetPropertyValue("AccessLevel", 2);
ManagementBaseObject inParams = authzClass.GetMethodParameters("SetSecurity");
inParams["Object"] = entry;
inParams["Permissions"] = new object[] { permObject };
ManagementBaseObject outParams = authzClass.InvokeMethod("SetSecurity", inParams, null); //raise exception.
助けてくれてありがとう