2013-08-20 37 views
1

关于控制这个职位Control VisualSVN Server from C#VisualSVN服务器,从C#

我试图来管理具体的文件夹的用户权限。

对于存储库本身的管理,一切工作正常。

但是,只要我尝试更改存储库的ManagementBaseObject而不是ManagementObject的“Object”参数,就会引发异常。

我知道,有做同样的服务器的新版本(与路径替换所引用的对象)

//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. 

感谢所有帮助

+3

“例外”没有帮助。告诉我们什么是例外。你的意思是这是一个运行时异常或编译时错误? – tnw

+0

检查更新的答案:http://stackoverflow.com/a/10030008/761095 – bahrep

回答

0

参数Object以新的方式VisualSVN_SecurityDescriptor.SetSecurity()方法应该引用WMI对象(对象路径),而不是WMI对象本身。尝试使用ManagementPath .NET类应该有所帮助。