模拟不起作用 – networking共享

我创build了一个指向networking共享的虚拟目录(IIS 7.0)。 这个虚拟目录位于我的Web应用程序根目录下。

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

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

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

更新
1.运行procmon时,我可以在拒绝访问之前每次看到“FAST IO DISALLOWED”消息。 不太确定它是否相关。
我怀疑双跳问题的症状。 但不知道如何真正validation它或如何绕过它,而不真正改变Kerbros的身份validation。

谢谢!

首先,“模仿”是指只在同一台机器上应用的术语,如果你的networking共享(或者IIS,或者虚拟目录,或者MS SQL Server等)在另一台计算机上,那么它就是委托,你应该configuration它在计算机之间(读取SPN,服务主要名称)。
你的networking是共享在同一台计算机还是不同的计算机上?

然后,它不是“双跳”,因为您不会传递您的webapp用户的原始身份,而是在web.config中使用固定的模拟。

我希望它不是在生产? 这个,把证书放在web.config中,是EVIL,EVIL,EVIL,千万不要这样做,只是不要!

顺便说一句,你可以达到相同的结果没有固定的模拟在web.config通过运行你的web应用程序在你的域用户下的自定义应用程序池,比较。 [1]。 这更容易,可configuration和可靠。

我本来可以试着给你写所有可能的案例的说明,因为在你的文章中确切的上下文是模糊的,但它会以几十页的不可读的文章结束。

好,我开始写:

  • 禁用“匿名访问”并启用IIS中的“基本身份validation”(网站属性)
    更改

     <authentication mode="None" /> 

     <authentication mode="Windows" /> 

    在web.config

    在Windows资源pipe理器中禁用“使用简单文件共享” – >菜单工具—>文件夹选项… —>选项卡视图

    为networking共享上的用户名授予权限

    确保所有涉及的交互式计算机上都启用了NTLM

请阅读并遵循[2]中的说明。
我无法findIIS7 / W2006相同质量的描述,但我坚信你所需要的不会改变。
如果您还有其他问题或疑问,请发表更具体的问题。


—– 引用:

[1]
如何:为ASP.NET 2.0应用程序创build一个服务帐户
http://msdn.microsoft.com/en-us/library/ms998297.aspx

[2]
如何在ASP.NET 2.0中使用模拟和委派
http://msdn.microsoft.com/en-us/library/ff647404.aspx