Asp.net 如何在网络驱动器上的站点上启用Windows身份验证,而不会在IIS Express中导致404错误?

Asp.net 如何在网络驱动器上的站点上启用Windows身份验证,而不会在IIS Express中导致404错误?,asp.net,visual-studio-2013,windows-authentication,iis-express,Asp.net,Visual Studio 2013,Windows Authentication,Iis Express,我的项目文件夹位于网络驱动器上,我正在运行Windows 8.1。如果我在Visual Studio 2013中创建一个完全由单个静态文件test.js组成的全新网站,并使用Visual Studio附带的IIS Express 8.5启动该网站,我就能够在浏览器中查看该文件的内容 但是,如果我进入Web.Config并使用下面的代码打开Windows身份验证,那么相同的路径现在变成404.0错误 <system.webServer> <security>

我的项目文件夹位于网络驱动器上,我正在运行Windows 8.1。如果我在Visual Studio 2013中创建一个完全由单个静态文件test.js组成的全新网站,并使用Visual Studio附带的IIS Express 8.5启动该网站,我就能够在浏览器中查看该文件的内容

但是,如果我进入Web.Config并使用下面的代码打开Windows身份验证,那么相同的路径现在变成404.0错误

  <system.webServer>
    <security>
      <authentication>
        <anonymousAuthentication enabled="false"/>
        <windowsAuthentication enabled="true"/>
      </authentication>
    </security>
  </system.webServer>
但是,如果我在本地路径上执行相同的过程,它就可以正常工作。如果我在Visual Studio 2010中打开该站点并使用ASP.NET开发服务器运行它,它也可以工作

因为它是Windows 8,它阻止其他用户以及作为管理员运行的任何东西看到我的网络驱动器,所以我想到的一种可能性是,当我打开Windows Auth时,IIS可能会提升自身,但根据任务管理器,IIS工作进程仍以我的身份运行

到目前为止,我已经尝试:

切换到经典应用程序池,以便打开。无效
将的物理路径更改为共享的UNC路径。将错误更改为401.3,未授权 使每个人都能完全控制文件服务器上的文件夹。无效 更改默认设置,使应用程序池以我的身份运行。无效 有一件事很有效,那就是让每个人都能访问共享本身,但出于明显的安全原因,我不能就这样离开它。这也只解决了physicalPath设置为Visual Studio喜欢覆盖的UNC路径的问题


如何让Windows身份验证在IIS Express上工作,而不让它以其他用户身份访问我的网络文件?

您的计算机是域的成员吗?可能是您的浏览器设置为使用所有intranet站点的windows凭据自动登录。您可以在Internet explorer中关闭此功能,并强制它提示输入用户id和密码。在internet explorer中,转到工具、internet选项、安全,单击本地Intranet,然后单击底部的自定义级别按钮。一直滚动到设置列表的底部,并将登录选项从自动登录更改为提示输入用户名和密码。然后,它会在您下次登录时提示您登录,并使用您知道有权访问的帐户登录。

不,我不在域中,但共享位于我的受信任区域,我使用与映射共享相同的凭据登录到该站点,所以我知道该帐户可以访问这些文件。将的物理路径更改为共享的UNC路径。将错误更改为401.3,“未授权”是您应该进一步采取的路线。应用程序池必须有权访问web.config文件,否则可能会发生此类问题。如果您真的不需要模拟,则应将其设置为false。您还可以在虚拟目录设置中设置专用帐户以访问UNC路径。