我需要解决的情况是:我正在编写一个应用程序,多个用户将可以访问。访问基于Windows文件夹权限进行限制 - 如果需要,将授予用户访问包含应用程序的文件夹的权限。
好或坏,应用程序将其数据存储在与应用程序相同的网络上的文件中。我不希望用户能够直接编辑数据,因此我计划限制对数据文件的访问。
我一直试图使用的方法是具有对数据进行读/写访问权限的“服务用户”,并在应用程序中使用模拟登录作为服务用户,执行所需的读/写操作,然后返回到原始用户。
我尝试了几种不同的方法都没有成功。也许最简单/最有前途的方法是基于Mark Johnson在这里的答案: 如何在.NET中进行模拟? 我按照以下方式使用它:
好或坏,应用程序将其数据存储在与应用程序相同的网络上的文件中。我不希望用户能够直接编辑数据,因此我计划限制对数据文件的访问。
我一直试图使用的方法是具有对数据进行读/写访问权限的“服务用户”,并在应用程序中使用模拟登录作为服务用户,执行所需的读/写操作,然后返回到原始用户。
我尝试了几种不同的方法都没有成功。也许最简单/最有前途的方法是基于Mark Johnson在这里的答案: 如何在.NET中进行模拟? 我按照以下方式使用它:
using (new Impersonation(serviceAccount.Domain, serviceAccount.UserName, serviceAccount.Password))
{
DoImport(app);
}
“DoImport(app)”执行数据读取操作。
然而,这会出现错误“拒绝访问路径'...'”。我正在尝试在本地运行此代码(路径为C:...),我已经限制了登录用户对该路径的访问权限,但是我要模拟的用户具有访问权限。
我做错了什么吗?有更好的方法来实现我的目标吗?
谢谢,
安德鲁