1

この投稿に関連して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.

助けてくれてありがとう

4

1 に答える 1

1

VisualSVN_SecurityDescriptor.SetSecurity() メソッドの引数Objectは、WMI オブジェクト自体ではなく、WMI オブジェクト (オブジェクト パス) への参照である必要があります。ManagementPath .NET クラスを試してください。

于 2013-08-21T18:47:19.917 に答える