没有Windows帐户的IIS7基本身份validation

我正在尝试使用基本身份validation来保护IIS7.5上的MVC.NET站点。 我宁愿不设置一个完整的Windows帐户,因为我不希望用户有这么多的特权。 我也不想实施数据驱动的身份validation解决scheme。 我只是想快速创build一个用户只能访问网站,没有别的。

有没有办法通过将凭据存储在web.config文件中? 或者使用IIS托pipe用户? 被pipe理的用户看起来有点过分,因为我不希望用户真正能够pipe理该网站,只是获得查看它。

如果我没有记错,您可以将用户的凭据直接存储在web.config文件中,但只能与Forms Authentication Provider结合使用。

不build议像这样存储证书,尤其是当您可以轻松设置默认ASP.NET成员资格提供程序来使用本地SQLCE实例时。

<authentication mode="Forms"> <forms name=".ASPNETAUTH"> <credentials passwordFormat="Clear"> <user name="test" password="test"/> </credentials> </forms> </authentication> 

大多数内置的IIS身份validation方法都以某种方式使用Windows帐户,因此,如果您不想为此执行任何重大工作,则必须使用这些帐户 – 您将需要创build帐户被合理地locking。

这通常足以:

  1. 创build一个组(例如Web用户)
  2. 将个人帐户添加到该组
  3. 从用户中删除帐户(这有效地摆脱了很多默认权限)
  4. 给网站用户组读取网站文件夹的权限(以及有select地修改所需的权限 – 例如上传目录)
  5. 将该组添加到本地安全策略/用户权限分配中的相关“拒绝…”条目

或者,您可能希望将该组的recursion拒绝完全控制ACE添加到磁盘,registryconfiguration单元和任何其他DACL驱动的资源 – SetACL应该能够完成其中的大部分操作(请参阅http://helgeklein.com/ ) 。

如果你真的必须使用自定义的用户列表,那么(正如@BrentPabst所说)表单身份validation是唯一真正的方法(请参阅http://msdn.microsoft.com/en-us/library/da0adyye.aspx ),但是你将需要创buildASP.NETlogin页面。

我还没有尝试IISpipe理器身份validation,但从我所看到的,它只适用于FTP站点,而不是网站。

J.