我需要创建一个程序,从文本文件中读取数据,并根据文本文件中的特定数据更改程序状态,我的程序需要具有读取,写入和创建文本文件的权限。
我希望阻止用户甚至其他软件删除,修改或复制文件。我将如何开始实施?
答案 0 :(得分:0)
您可以通过三种方式实现这一目标:
1)应用程序启动后立即获取文件句柄并锁定文件。这当然只有在应用程序一直运行时(例如作为服务)
才有效2)调整文件安全性选项卡中的权限并将其设置为只读。创建技术用户以进行写访问(在域中最佳)。使用impersionation(WindowsImpersonationContext)时,请与技术用户一起打开程序中的文件。使用很简单:
jQuery("document").ready(function($){
if(window.location.hash != ""){
$('html,body').animate({scrollTop: $(window.location.hash).offset().top},'slow');
}
})
一个示例类,它将为您提供一个WindowsImpersonationContext(应该像魅力一样工作):
using (new Impersonation(domain, username, password))
{
// do whatever you want
}
此处显示了另一种尝试(包括使用):Open a shared file under another user and domain?
3)显然以具有访问权限的其他用户身份运行程序 - 所有其他用户都具有只读权限(在注册为服务或使用runas / user命令时使用技术用户)
答案 1 :(得分:0)
您可以使用特定访问条件(https://msdn.microsoft.com/de-de/library/s67691sb(v=vs.110).aspx)打开文件。 如果您拒绝此处的权限,应用程序将无法修改数据。 为清楚起见,您的应用程序访问权限是只读的,您无法对其进行修改。
防止其他应用程序或用户删除/修改/在C#中无法使用的文本文件。您可以限制文件系统中的权限,但这就是全部。
如果这很重要,那么您应该重新考虑您的实施。 C#在应用程序配置中提供实例或应用程序特定参数的资源文件。