AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 48042
In Process
yyyykk
yyyykk
Asked: 2009-07-31 05:34:31 +0800 CST2009-07-31 05:34:31 +0800 CST 2009-07-31 05:34:31 +0800 CST

IIS 服务作为本地系统帐户运行,那么我如何给它共享目录权限?

  • 772

我的 ASP 页面从共享目录中读取文件并将其发送给用户。

        Response.Clear();
        Response.ContentType = "application/octet-stream";
        Response.AddHeader("Content-Disposition:", string.Format("attachment; filename={0}", fileName));
        Response.WriteFile(filePath);
        Response.End();

此 ASP 代码在 Web 服务器上运行,我想它作为本地系统帐户运行,因为 IIS 是。filePath 指向文件服务器上的一个文件 \\fileserver\shared\abc.pdf

当我在本地机器上调试代码时,会从 ASP 页面正确读取文件。但是,当我在 Web 服务器上运行它时,它无法读取该文件。我需要给 \fileserver\shared 什么权限才能让 ASP 页面正确读取文件?显然本地系统不是权限页面中的有效用户登录。

asp.net
  • 3 3 个回答
  • 9346 Views

3 个回答

  • Voted
  1. David Gardiner
    2009-07-31T06:50:55+08:002009-07-31T06:50:55+08:00

    ASP.NET 工作进程使用 IIS 中配置的应用程序池的标识运行。在 IIS 6 及更高版本中,这默认为网络服务(如 splattne 指出的那样)。

    如果您需要从 ASP.NET 应用程序访问远程文件,我建议您创建一个特定的域帐户并以该用户身份运行应用程序池,并授予该用户访问共享的权限。这样您就可以控制谁可以访问这些文件。网络服务是一个内置帐户,存在于所有 WinXP 机器(及更高版本)上,因此您不希望为此打开共享。

    另一种解决方案是只提升访问共享的代码以使用域登录,但让其余的 ASP.NET 代码作为网络服务运行。这可能更安全,尽管您必须弄清楚如何安全地存储凭据。

    -戴夫

    • 2
  2. user2278
    2009-07-31T08:19:00+08:002009-07-31T08:19:00+08:00

    网络服务和本地系统都以计算机帐户 (DOMAIN\computer$) 的形式出现在网络上。因此,如果您无法使用常规用户帐户,则需要授予该帐户对文件共享的权限。

    • 1
  3. splattne
    2009-07-31T06:07:53+08:002009-07-31T06:07:53+08:00

    在 Windows Server 2003 (IIS 6.0) 中,ASP.NET 代码运行为

    Network Service
    

    帐户。因此,将文件夹读取权限授予该内置帐户。


    Microsoft TechNet 文章:IIS 和内置帐户 (IIS 6.0)

    内置网络服务用户帐户在系统上的访问权限少于 LocalSystem 用户帐户,但网络服务用户帐户仍然能够在整个网络中使用计算机帐户的凭据进行交互。

    对于 IIS 6.0,建议为应用程序池定义的工作进程标识作为网络服务用户帐户运行,这是默认设置。下表显示了网络服务帐户的默认用户权限,以及每个权限的派生方式。

    • 0

相关问题

  • 在 IIS 7 上设置 ASP.NET 网站

  • 2003 Server企业版不能运行ASP.NET应用程序?

  • 在 SQL Server 2008 上为 ASP.NET 应用程序设置登录名

  • 使用 Web.config 阻止对子目录的访问

  • 对于 ASP.Net 应用程序,Windows 64 位相对于 32 位的主要优势是什么?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve