【问题标题】:IIS7 and Authentication problemsIIS7 和身份验证问题
【发布时间】:2008-11-14 05:35:21
【问题描述】:

我有一个标准的 ASP.NET 网站,部署到我们的开发机器(我们服务器机房的内部机器)。

现在,内部和外部用户都可以访问此开发站点。现在,在 IIS6 中,我们曾经拥有它,因此 匿名身份验证 被关闭 并且其他东西被打开.. 为用户提供用户名和密码的弹出模型框。我认为他们必须输入一些在 web.config 文件中定义的用户名或密码? (不是他们的网站帐户用户名/密码)/

现在,使用 IIS7,当我关闭 Anon Auth,然后打开 BasicWindows Auth,我可以访问该站点但它试图让我使用这些凭据登录......而不是用户注册的帐户(使用一些股票标准 asp.net 网络表单页面)。

所以...是否可以“锁定”整个站点并让测试人员获得对该站点的一般访问权限.. 这与他们的网站用户名和密码不同。这些用户名和密码是在网站中使用的。

这有意义吗?

干杯!


<authentication mode="Forms">
    <forms loginUrl="~/Pages/Login.aspx" protection="Validation" timeout="1000000000" requireSSL="false" slidingExpiration="true" defaultUrl="Default.aspx">
    </forms>
</authentication>

没有授权部分。

另外,当我将“Digest Auth”添加到 iis7 并启用它(并禁用其他所有内容)时,我会看到弹出窗口(kewl!)但我不确定我需要传递哪些凭据。在哪里可以我手动定义这些凭据(因此它们与网站用户分开)??

【问题讨论】:

  • 这是一个完全合理的期望和非常普遍的要求。
  • @Aaron - 希望我们可以要求 IIS 团队添加这个:(

标签: authentication iis-7 windows-authentication basic-authentication http-authentication


【解决方案1】:

IIS7 集成模式不支持 IIS6 所做的两阶段身份验证。基本上,IIS6 将执行其身份验证(Windows),然后由 asp.net 执行其身份验证(表单)。但是对于 IIS7,在集成模式下一切都是平等的,因此您只能使用一种或另一种身份验证方法。

您可以将应用程序池转换为使用经典模式或关注this workaround 以使其在集成模式下工作。

【讨论】:

  • 但是必须有比这更简洁的方法。编写自定义包装器模块来完成如此简单的任务实在是太过分了。过度设计的全部案例。
  • @Aaron - 同意伙计,完全同意! (不幸)
猜你喜欢
  • 2012-03-05
  • 1970-01-01
  • 2012-09-26
  • 2014-08-30
  • 2013-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多