IIS7和身份验证问题

5
我有一个标准的ASP.NET网站,部署在我们的开发机器上(位于我们服务器房内)。现在,这个开发网站可以被内部和外部用户访问。在IIS6中,我们关闭了匿名身份验证,并打开了其他一些设置,使用户可以弹出模态框输入用户名和密码。我认为他们需要在web.config文件中输入一些用户名或密码(而不是他们的网站账户用户名/密码)才能登录。现在,在IIS7中,当我关闭匿名身份验证并打开基本身份验证或Windows身份验证时,我可以访问该网站,但它试图使用那些凭据来登录,而不是用户使用的账户(使用一些标准的ASP.NET Web表单页面)。所以,是否有可能“锁定”整个网站,并让测试人员获得对该网站的一般访问权限,这与他们的网站用户名和密码不同。这些用户名和密码用于在网站上使用。这样说清楚了吗?谢谢!
<authentication mode="Forms">
    <forms loginUrl="~/Pages/Login.aspx" protection="Validation" timeout="1000000000" requireSSL="false" slidingExpiration="true" defaultUrl="Default.aspx">
    </forms>
</authentication>

没有授权部分。

另外,当我在IIS7中添加“摘要身份验证”并启用它(并禁用其他所有内容)时,我会弹出窗口(很酷!),但我不确定需要传递哪些凭据。在哪里可以手动定义这些凭据(以便与网站的用户分开)?


1
这是一个非常合理的期望和非常普遍的要求。 - Aaron
@Aaron - 希望我们能够请求IIS团队添加这个 :( - Pure.Krome
1个回答

6
IIS7 集成模式不支持 IIS6 的两阶段身份验证。基本上,IIS6 会执行其身份验证(Windows),然后 asp.net 执行其身份验证(表单)。但是在 IIS7 中,集成模式下一切都是平等的,因此您只能使用一种身份验证方法。
您可以将应用程序池转换为经典模式,或按照此解决方案来使其与集成模式配合使用。请参考此链接

2
但是一定有比这更简洁更清晰的方法。编写自定义包装模块来完成如此简单的任务,这太过于繁琐了。完全是过度工程化的例子。 - Aaron
@Aaron - 同意啊,兄弟,完全同意!(不幸的是) - Pure.Krome

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接