在webservice上拒绝访问

时间:2010-03-13 20:59:54

标签: c# permissions web-services

我有一个winforms,它与webservice连接。

Webservice有创建文件夹的方法

Directory.Create(path);

Webservice位于公司服务器上,我必须在公司的另一张光盘上创建此文件夹。

当我调用此方法时,我得到异常"Access denied to path..."

当webservice在我的电脑上运行时一切正常。

我可以完全访问此网络光盘。

但是如何设置对公司服务器的完全访问权限?

当我检查这个方法时:

[WebMethod]
        public string GetNameOfUser()
        {
            return WindowsIdentity.GetCurrent().Name;
        }

我得到<string>NT AUTHORITY\NETWORK SERVICE</string>

其他没有目录说明正常工作的web方法

编辑结构

计算机A在域中并且有正在运行的胜利表单

服务器A:正在运行webservice

网络光盘:有一些文件夹包含winforms应用程序的重要文件

是的,我们有一个域。计算机A可以访问网络光盘。

2 个答案:

答案 0 :(得分:2)

据我所知,您的应用程序尝试创建一个驻留在与Web应用程序不同的服务器上的文件夹。

您的网络应用程序在本地帐户NT AUTHORITY\NETWORK SERVICE下运行。要访问网络共享,您需要在两台计算机上可用的帐户下运行,例如域帐户。

如果Web服务器和具有网络共享的服务器都在域中,您可以:

  1. 创建域帐户
  2. 授予您要创建新文件夹的父文件夹的帐户写入权限
  3. 使您的网络服务器上的应用程序池在域帐户下运行
  4. 这将使您的Web应用程序在另一台服务器上创建foldera。

答案 1 :(得分:0)

当您在自己的计算机上运行Web应用程序时,它可以自行创建帐户,因此可以创建目录。

在服务器上,应用程序在权限很低的帐户下运行。 如果要在特定的固定目录下创建这些新目录,可以允许该服务器帐户修改该特定目录。