尝试执行未经授权的操作C#ASP .NET

时间:2015-10-25 23:26:56

标签: c# asp.net iis

我正在尝试在远程Web服务器上创建一个ASP .NET Web应用程序,它将检查Web服务器中是否存在文件夹,如果不存在则创建它,检查该文件夹中是否存在文件,创建如果没有,则根据输入到网页的内容相应地编写和附加该文件。

执行此类操作需要能够创建目录,创建文件和读/写文件。当然,完全控制将涵盖我需要完成的所有事情,并且为了这个特定的任务,给自己完全控制没有任何缺点。我尝试访问的目录是当前网页的父目录,因为创建目录的网页位于/root/Pages/currentPage.aspx中,而我要创建的目录是/ root / Files / fileToBeCreated.txt。

目前,我的安全代码如下所示:

    DirectoryInfo dInfo = new DirectoryInfo("..");

    DirectorySecurity dSecurity = dInfo.GetAccessControl();

    dSecurity.AddAccessRule(new FileSystemAccessRule(@"Network Service", FileSystemRights.FullControl, AccessControlType.Allow));

    dInfo.SetAccessControl(dSecurity);

然而,它引发了一个错误,声称我试图在这一行上执行未经授权的操作:

    dInfo.SetAccessControl(dSecurity);

我尝试过使用identity impersonate =" true",它也不起作用,并抛出了与我的Web.config文件相关的几个日益复杂的错误。此外,我不确定我会分配哪个用户名或密码。

每当我尝试使用"网络服务"以外的网络用户运行时,它会抛出相同的错误,即#34;无法翻译部分或全部身份参考。"基于此,我知道"网络服务"是一个有效的用户,但我不知道如何分配权限。

我重申网络服务器是远程的,我无法直接访问它,否则这将是轻而易举的事,但所有设置的权限必须通过网络服务器以编程方式完成。

如果我遗漏了任何必要的信息,请告知我们,并感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

通常情况下,网站使用"网络服务"帐户在服务器上。如果您的远程服务器就是这种情况,那么您正尝试授予"网络服务"新权限,但您正在使用它来执行此操作。基本上,它不能授予自己没有的权限。

如果您希望更改网站运行的Windows帐户,可以参考此处。请仔细阅读本页的安全说明和建议。

https://msdn.microsoft.com/en-us/library/dwc1xthy(v=vs.100).aspx