如何在启动之前保护.NET(MVC)网站?

我有一个正在开发的.NET(MVC2)网站。 我已经将它部署到了一些生产基础设施,并通过匿名访问(因为它会一旦生效)在互联网上进行testing,并且工作正常。 在现在和上线date之间,我想限制访问一个小testing组。

但是,当我closures匿名访问(我在Windows 2008 R2 64位上使用IIS 7)并启用基本身份validation时,出现两个问题:首先,它干扰站点身份validation,并redirect到configuration的站点login页面其次,由于某种原因样式表停止“工作”。 即该站点显示为没有样式表,即使正确下载(如在Fiddler / Firebug中查看)。

我想要的是保护访问服务器 – 我不想使用基本身份validation作为MVC网站的身份validation机制 – 这是由标准的表单身份validation处理。 我只是想阻止人们在网站上线之前窥探它。

我以前有过,而且总是因缺乏简单/明显的“使用密码保护此服务器”function而陷入困境。

必须有一个简单的答案。 (我正在考虑一个.htaccess文件的function相当于IIS)?

[更新]继续从我的侥幸(见下面的答案),我想要的是Windows身份validation来控制访问该网站,ASP.NET身份validation,以控制用户与网站的交互(他们的身份,是否出现日志进/出等)

您可以通过为该站点设置IP地址和域名限制来做你想做的事情。 这是IISpipe理器中的一个选项。

好的 – 所以这可能是我的错。 为了使IIS / ASP.NET可以很好地玩,你不能简单地依赖IIS身份validation模块。 虽然我正忙于启用/禁用IISpipe理器pipe理单元中的选项,但我遇到的问题(redirect)是由web.config设置引起的:


<authentication mode="Forms">
<forms loginUrl="~/logon" protection="All" path="/" />
</authentication>

无论您在IIS(匿名,基本,Windows,窗体等)中select的选项web.config似乎覆盖/干涉select。

因此,答案是将web.config中的身份validation元素replace为声明Windows身份validation的身份validation元素:

<authentication mode="Windows"></authentication>

然后通过IIS模块删除匿名访问,然后selectBasic。

替代文字