【问题标题】:ASP.NET web service using IUSR, not Application Pool Identity使用 IUSR 的 ASP.NET Web 服务,而不是应用程序池标识
【发布时间】:2014-05-01 14:09:43
【问题描述】:

这个问题好像和这个类似:IIS site not using identity specified in app pool IIS 7 + 但是,那里没有答案。

底部有一个 tl;dr。

要记住的是,我不是设置服务器的人,所以他们可能更改了一些我不知道的设置。

我们有一个在 IIS 7 上运行的 ASP.NET Web 服务。该 Web 服务设置为使用 DefaultAppPool,并且应用程序池的标识设置为域用户(假设它是“localdomain\user1”)。

Web 服务无法保存到某个网络文件夹,因此我们授予 localdomain\user1 对该文件夹的读/写权限。但是,它仍然无法保存在那里。

我无法远程调试,它在我自己的计算机上运行良好(可能是因为它在 Visual Studio 的 IIS express 中运行并且我的用户确实可以访问),所以我尝试更改 Web 服务,以便错误消息包含运行它的用户名。

如果我使用Environment.UserName 得到它,结果是“IUSR”。如果我使用System.Security.Principal.WindowsIdentity.GetCurrent().Name,它会返回“NT AUTHORITY\IUSR”。

除非上述方法不可靠,否则 Web 服务似乎在默认用户 (IUSR) 下运行,而不是在其应用程序池中设置的用户。我不知道为什么,谁能解释一下?

编辑:如果我使用 RDP 登录,服务器上的任务管理器显示 w3wp.exe 进程正在由 user1 运行。我不确定该相信哪一个。

谢谢。

tl;dr:Web 服务的应用程序池设置为域用户,但它似乎在 IUSR 下运行。我该如何防止呢?

【问题讨论】:

    标签: asp.net web-services iis


    【解决方案1】:

    冒名顶替是个问题。我不知道这是 Web 服务的 web.config 中的设置。

    <identity impersonate="true"/> 更改为<identity impersonate="false"/> 允许它以localdomain\user1 身份运行。

    【讨论】:

    • 有什么方法可以通过代码而不是 xml 定义来设置?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    • 2012-11-17
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    相关资源
    最近更新 更多