模拟不工作 - 网络共享

时间:2010-08-21 21:50:38

标签: asp.net sharepoint iis iis-7 permissions

我创建了一个虚拟目录(IIS 7.0),它指向网络共享。此虚拟目录位于我的Web应用程序根目录下。

我尝试使用域凭据进行匿名访问。另外,我尝试使用如下模拟...

<identity impersonate="true" userName="<supplied username>"
password="<supplied password>" />

问题:应用程序总是使用IUSR连接到该共享并获得“拒绝访问”。我需要强制我的申请使用上面的域名。


更新
1.在运行procmon时,每次访问被拒绝之前,我都会看到“FAST IO DISALLOWED”消息。不确定它是否相关。
我怀疑双重问题的症状在这里。但是,如果不真正将身份验证更改为Kerbros,就不知道如何真正验证它或如何绕过它。

谢谢!

5 个答案:

答案 0 :(得分:4)

默认情况下,IIS 7在"integrated mode".中运行 你不能再冒充那里了 (您在模拟时没有收到错误消息,但它不会提升权限)

您需要将应用程序的ASP.NET 应用程序池切换为"classic mode"才能使用模拟。
请注意,这也意味着您将丢失所有依赖于集成模式的功能。

enter image description here enter image description here

另一种可能的解决方案可能是创建一个指向smb共享的符号链接,赋予符号链接IUSR权限,让操作系统处理其余部分(不知道是否有效,并给出MSFT的跟踪记录,I “我猜它没有。”

mklink /d  C:\inetpub\wwwroot\your_application_root\ShareName \\Server\ShareName\Directory
然而,mklink要求Windows Vista +,即Windows Server 2008 +

答案 1 :(得分:1)

对于ASP.NET应用程序,通常建议您在“ASP.NET用户帐户”下运行而不进行模拟。我的想法是,这个帐户是一个低权限帐户,如果由于某种原因机器受到损害,可以造成很小的损害。

(这是一篇可以帮助你的文章的链接参考)。

http://west-wind.com/weblog/posts/2153.aspx

答案 2 :(得分:1)

我同意乔的说法。但是,在应用严格策略的大多数企业环境中,无法授予低权限帐户来访问某些资源。在这种情况下,程序化模拟将是一种更好的方法: http://www.west-wind.com/weblog/posts/1572.aspx

答案 3 :(得分:1)

授予IUSR帐户访问您的共享的权限。更好的是让您的程序使用内置的ASP帐户(如Joe Garrett所述)并授予该共享访问权限。

答案 4 :(得分:0)

尝试禁用匿名访问。如果不强制用户登录(通过在web.config中添加deny =“?”),则使用Windows身份验证将导致IIS使用配置的帐户进行模拟。

相关问题