在开发过程中,我想出了在远程 PC 上使用我的 asp.net mvc 站点的必要性。因此,我将其配置为使用 IIS Express。
起初,Windows 身份验证出现了一个问题。我的网站应该在 windows 域内联网中工作,所以我想使用集成的 windows 身份验证。我设法通过How To: Firefox and Integrated Windows Authentication from IIS Express Windows Authentication(bees73 的回答)让它在 Firefox 上运行。但是 IExplorer 仍然要求打印登录名/密码,即使我在本地打开它,指定我的 ip 而不是 localhost。
IE 的问题仍未解决,但顺其自然 - 如果我打印我的凭据,它确实可以在本地工作。
我的问题是:当我在远程 PC 上打开我的网站时(在 Firefox(无需打印登录名/密码)和 IE(我必须打印 login'n'password)中)我的页面在没有应用样式的情况下呈现。看起来没有可用的css。但我没有收到任何错误。
在加载页面的源代码中,我确实有行
<link href="/Content/Site.css" rel="stylesheet" type="text/css" />
但是当我尝试查看 Site.css 时,它说,有一些内部服务器错误。
我想我没有正确配置 IIS Express,这就是问题所在。如果没问题,至少我猜集成的 Windows 身份验证必须在不询问 IE 上的登录名和密码的情况下工作。
所以,我的配置:
- 项目本身 - 到 IIS Express,Windows 身份验证 - 开启,匿名 - 关闭。
- netsh http 添加 urlacl url= http://myip:myport用户=域名\mylogin
- netsh http 添加 iplisten ipaddres=myip
- 在applicationhost.config:
绑定:
<site name="MySite" id="2"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="D:\..." /> </application> <bindings> <binding protocol="http" bindingInformation="*:myport:localhost" /> <binding protocol="http" bindingInformation="*:myport:myip" /> </bindings> </site>
验证:
<sectionGroup name="authentication"> <section name="anonymousAuthentication" overrideModeDefault="Deny" /> ... <section name="windowsAuthentication" overrideModeDefault="Allow" /> </sectionGroup>
<authentication> <anonymousAuthentication enabled="false" userName="" /> ... <windowsAuthentication enabled="true"> <providers> <add value="Negotiate" /> <add value="NTLM" /> </providers> </windowsAuthentication> </authentication>
<add name="AnonymousAuthenticationModule" lockItem="true" />
<location path="MySite"> <system.webServer> <security> <authentication> <anonymousAuthentication enabled="false" /> <windowsAuthentication enabled="true" /> </authentication> </security> </system.webServer> </location>