2014-12-22 18 views
1

我目前有一个WCF服务,允许客户端上传图像到服务器。然后该服务将该映像作为测试保存到服务器的C驱动器。这工作,但我很好奇为什么它的工作原理。WCF使用哪些用户编写?

我的印象是,服务总是作为IIS用户执行,这意味着它会被执行时的IIS用户拥有的任何权限卡住。但是,我上传到C驱动器的文件夹根本没有列出IIS用户的权限。唯一具有该用户权限的文件夹是实际包含该服务的文件夹,即使此时它只能读取&执行。

所以我的问题是,当它作为一个用户没有该目录的安全访问权限的用户运行时,服务如何能够写入服务器的C驱动器?

+0

无法知道没有你的设置。服务/应用程序池在哪个用户下运行? –

+0

服务不必在IIS用户下运行。为您提供最简单的解决方案,以检查保存文件的所有者。 – Uriil

回答

2

如果WCF服务托管在IIS,那么实际的代码的IUSR用户权限下运行,而它运行你为这个特定的应用程序池设置的帐户下。

可以轻松地检查身份,只是建立了一个简单的ASPX页面并粘贴到网页的文件

<%@ Page Language="C#" %> 

Current user: <%= System.Security.Principal.WindowsIdentity.GetCurrent().Name %> 

http://www.wiktorzychla.com/2010/09/identity-of-application-pool-in-iis.html