最近做一个网站,其中有一些xml文件,没发布之前在debug下一切正常可以正常访问
但发布以后这些xml文件都拒绝访问,我上网查了一些说是权限问题,但客户要求安全级别比较高
我不能去更改发布后的文件夹或文件的权限,后来我想通过程序来更改文件访问权限,用了Process类来调用cmd方式执行dos命令
可还是不好用
还请各位高手帮忙看看有没有更好的方法!小弟在这里先谢谢各位!
但发布以后这些xml文件都拒绝访问,我上网查了一些说是权限问题,但客户要求安全级别比较高
我不能去更改发布后的文件夹或文件的权限,后来我想通过程序来更改文件访问权限,用了Process类来调用cmd方式执行dos命令
可还是不好用
还请各位高手帮忙看看有没有更好的方法!小弟在这里先谢谢各位!
解决方案 »
- C#如何区分日文汉字和中文汉字(即区分简体中文和繁体中文)
- 请教,c#中快速排序的方法
- 各位大哥!小妹我遇到一个棘手的问题??望大家救救我啊!小妹急等
- 在datalist添加了一个判断的label...
- 我的.net程序调用一个com+组件,组件对两个服务器的数据库操作,可是提示0x8004d00e。如果对一个服务操作就没问题
- 求Together for VS.NET注册机及XDE for VS.NET2003下载地址
- 关于JSON反序列化
- web如何访问网域内的机器的文件路径
- 关于文件上传问题,大家都使用htmlcontrols.htminputfile控件吗?
- 菜鸟问题
- 一个删除文件的问题
- 关于实时监控系统事件日志问题!有思路就好,有代码会加大给分力度。。。
问题已经解决了
我把部分代码贴出来,有需要的可以看一下
web.config中加
<system.web>
<identity impersonate="true" />//web.config必须加的不然会报错主要用途是虚拟特定的用户
<system.web \>
//引用命名空间,这个需要引用一个外部的程序集有需要的可以联系我QQ:444511958
using Microsoft.Win32.Security;SecurityDescriptor secDesc = SecurityDescriptor.GetFileSecurity(Server.MapPath(@"../../App_Data"), SECURITY_INFORMATION.DACL_SECURITY_INFORMATION);
Dacl dacl = secDesc.Dacl;
//windows xp sid用ASPNET windows 2003 sid用NETWORK SERVICE
dacl.AddAce(new AceAccessAllowed(new Sid("ASPNET"), AccessType.GENERIC_ALL, AceFlags.CONTAINER_INHERIT_ACE | AceFlags.OBJECT_INHERIT_ACE));
secDesc.SetDacl(dacl);
secDesc.Owner = new Sid("ASPNET");
secDesc.SetFileSecurity(Server.MapPath(@"../../App_Data"), SECURITY_INFORMATION.DACL_SECURITY_INFORMATION);