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

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

我有一个正在开发的 .NET (MVC2) 网站。我已将其部署到一些生产基础架构,并通过互联网以匿名访问对其进行了测试(一旦上线就会如此),并且运行良好。从现在到上线日期,我希望将访问权限限制为一小群测试人员。

但是,当我关闭匿名访问(我在 Windows 2008 R2 64 位上使用 IIS 7)并启用基本身份验证时,出现了两件事情:首先,它会干扰站点身份验证,并重定向到配置的站点登录页面;其次,由于某种原因,样式表停止“工作”。也就是说,即使样式表被正确下载(如在 Fiddler/Firebug 中看到的那样),站点看起来好像没有样式表。

我想要的是确保对服务器的访问安全 - 我不想使用基本身份验证作为 MVC 网站的身份验证机制 - 该机制由标准表单身份验证处理。我只是想阻止人们在网站上线之前窥探网站。

我以前也遇到过这种情况,并且一直在努力解决缺少简单/明显的“用密码保护此服务器”功能的问题。

一定有一个简单的答案。(我正在考虑一个功能等同于 .htaccess 文件,但适用于 IIS)?

[更新] 继我险些失败之后(见下面的答案),我想要的是 Windows 身份验证来控制对网站的访问,以及 ASP.NET 身份验证来控制用户与网站的交互(他们的身份、是否显示登录/退出等)

答案1

您可以通过为站点设置 IP 地址和域限制来执行所需的操作。这是 IIS 管理器中的一个选项。

答案2

好的 - 所以这可能是我的错误。为了让 IIS/ASP.NET 正常运行,您不能仅仅依赖 IIS 身份验证模块。当我忙于启用/禁用 IIS 管理器管理单元中的选项时,我遇到的问题(重定向)是由 web.config 设置引起的:


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

无论您在 IIS 中选择哪个选项(匿名、基本、Windows、表单等),web.config 似乎都会覆盖/干扰该选择。

因此,答案是将 web.config 中的身份验证元素替换为声明 Windows 身份验证的元素:

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

然后通过 IIS 模块删除匿名访问,并选择 Basic。

替代文本

相关内容