在asp.net应用开发中遇到了一个安全权限的问题,请您赐教,不胜感激!

guangjian 2003-01-20 04:11:59
问题起源:
在web程序中需要调用一个别人写的API函数取数据然后存成本地的一个文本文件,但是这个API函数却没有提供路径参数,aspnet应用程序就会将文件生成到\winnt\system32下,但缺省的进
程用户ASPNET没有写入权限,除非给system32文件夹添加ASPNET用户且赋予写入的权限,这样就
会导致安全隐患!

尝试解决:
1、在web.config的中添加
<identity impersonate="true" userName="administrator" password="aa"/>
但总是运行是提示web.config有问题,是否web.config配置有问题?请指点!不胜感激!
2、利用System.Security.Principal和System.Security.Permissions模拟administrator用户,因为administrator有system32文件夹写入的权限代码如下:

WindowsIdentity mWI1 = WindowsIdentity.GetCurrent();
int token1;
//调用win的API
bool loggedOn = LogonUser("administrator","willpower","aa",3,0,out token1);
IntPtr token2 = new IntPtr(token1);
WindowsIdentity mWI2 = new WindowsIdentity(token2);
WindowsImpersonationContext mWIC = mWI2.Impersonate();
。。。//操作:调用自定义的API写文件
mWIC.Undo();

上述代码在win应用中运行正确们但在web app中bool loggedOn =
LogonUser("administrator","willpower","aa",3,0,out token1); 总返回false
我将machine.config的<processModel>节中的userName="machine"改为"system"后
bool loggedOn = LogonUser("administrator","willpower","aa",3,0,out token1); 返回true,
但是这对所有本机的web app的权限赋予太大,存在安全隐患!
是否要在machine.config和security.config中联合修改安全策略,怎样修改,请指点!不胜感激!


联系:willpower@bluetech.com.cn
...全文
12 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧