如何解决文件的删除权限问题? Win2003Server,用.net C# 开发,在删除文件时,老是不成功(在本机没问题,WinXP)如果给目录授权给everyone,可以删除。但这样会不会有危险呢?不用这种方式,如何解决权限的问题? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 winForm应该不可能吧?webForm的话,可以把权限给ASPNET 是webform。您是指ASP.NET计算机帐户吗?我给了呀。顺便问一下,里面有两个删除相关的权限:删除子文件夹及文件、删除,这两个权限有什么区别吗? 在文件夹上点右键看属性共享-》权限-》选everyone 添加删除修改权限 危险是时刻存在的。至于你要通过Web程序删除目录/文件,可以将权限给到“修改”,赋予 IUSR_xxxx (Internet来宾帐户),而不是everyone,可以避免一部分潜在的威胁。当然ASP.NET计算机帐户也要有同样的权限。 我的意思是,能不能通过web程序在需要时来授权呢? // 在代码中模拟IIS认证帐号System.Security.Principal.WindowsImpersonationContext impersonationContext;impersonationContext = ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();//delete操作 impersonationContext.Undo();//撤销模拟 bumm,谢谢您的答复。按照您的代码,编写如下private void Page_Load(object sender, System.EventArgs e){ // 在此处放置用户代码以初始化页面 System.Security.Principal.WindowsImpersonationContext impersonationContext; impersonationContext=((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate(); try { System.IO.File.Delete(Server.MapPath("dnettest/abc.txt")); } catch(Exception ex) { SFun.WriteLine(ex.ToString()); } impersonationContext.Undo();}在运行时,提示指定的转换无效。异常详细信息: System.InvalidCastException: 指定的转换无效。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。堆栈跟踪: [InvalidCastException: 指定的转换无效。] ad.Test_DelFile.Page_Load(Object sender, EventArgs e) in d:\9i50\ad\test_delfile.aspx.cs:24 System.Web.UI.Control.OnLoad(EventArgs e) +67 System.Web.UI.Control.LoadRecursive() +35 System.Web.UI.Page.ProcessRequestMain() +750 问题解决了,在Windows2003Server中,为Authenticated Users用户添加删除文件夹及文件、删除权限后,成功删除了。感谢bumm给了提示。 GDI+ 绘制时钟问题 连接2个数据库 richtextbox 显示中文文字乱码? 在当前目录创建一个文件夹,然后在文件夹里创建一个文件,然后在文件里写入一些文字?如何写? DirectoryEntry操作AD的一点疑问,欢迎指教。。。 求助打印报表组件 如何在c#中得到当前目录的路径 如何由BYTE[]数据生成BMP图像? 请教,在.net的winform里用ShockwaveFlash加入的flash如何实现透明背景 c#windows服务与socket结合 怎样将枚举类型转换为其他的数据类型 请高手介绍几本适合我的书
webForm的话,可以把权限给ASPNET
您是指ASP.NET计算机帐户吗?我给了呀。顺便问一下,里面有两个删除相关的权限:删除子文件夹及文件、删除,这两个权限有什么区别吗?
共享-》权限-》选everyone 添加删除修改权限
System.Security.Principal.WindowsImpersonationContext impersonationContext;
impersonationContext = ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();//delete操作
impersonationContext.Undo();//撤销模拟
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
System.Security.Principal.WindowsImpersonationContext impersonationContext;
impersonationContext=((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();
try
{
System.IO.File.Delete(Server.MapPath("dnettest/abc.txt"));
}
catch(Exception ex)
{
SFun.WriteLine(ex.ToString());
}
impersonationContext.Undo();
}
在运行时,提示指定的转换无效。
异常详细信息: System.InvalidCastException: 指定的转换无效。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[InvalidCastException: 指定的转换无效。]
ad.Test_DelFile.Page_Load(Object sender, EventArgs e) in d:\9i50\ad\test_delfile.aspx.cs:24
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +750