我用VS打包工具打包,设置了AllowWriteAccess 为 true 后,安装 还是没写入权限.
只有设置user或aspnet 用户的写权限为true后,才能写入.
这个怎么解决啊!

解决方案 »

  1.   

    需要手动写代码来实现吧
    XP 加asp net 用户
    2003 加network service用户string accountName = System.Environment.UserName;
                string system = System.Environment.MachineName;
                accountName = "NETWORK SERVICE";
                Microsoft.Win32.Security.WindowsUser wu = new Microsoft.Win32.Security.WindowsUser(accountName, system);            SecuredObject so = new SecuredObject();
                so.ObjectName = @"d:\test";//你程序安装路径
                so.ObjectType = SecuredObjectType.FileObject;
                so.Permissions.SetAccess(wu, AccessRights.FileWriteUnsync, AceInheritanceFlags.ContainerInherit| AceInheritanceFlags.ObjectInherit);
      

  2.   

    请参照下列步骤即可实现: 
    1、在数据库安装程序类中增加一个方法ChangeAuth() 
    2、在此方法中通过Process类,调用cacls.exe对access文件进行权限更改 
      Process p = new Process(); 
        p.startinfo.filename = "cacls.exe"; 
        p.startinfo.arguments = accessfilepath + " /g everyone:F" 
        ......其它相关设置,重要的是上面的两句 
        p.start() 
    3、请学习一下Cacls的用法 
    4、上面的accessfilepath指的是您的access文件的路径。程序安装路径 通过Context的assemblypath参数可以在安装类中间接得到。 在上面的例子中就可以给虚拟目录下面的Access文件(对于你来说就是你要修改权限的文件夹)增加Everyone这个帐号“完全控制”(F)的权限