IIS 7.5上的Windows和匿名身份验证,允许自动登录内部和手动登录外部

时间:2012-09-04 14:47:56

标签: c# iis-7.5 authentication mixed-authentication

场景:

  • https asp / asp.net网站运行IIS 7.5(Windows Server 2008)
  • IIS当前配置为允许匿名身份验证和表单身份验证,未安装Windows身份验证时禁用asp.net模拟(我知道需要为此安装Windows身份验证。)
  • 内部和外部用户的单个自定义登录页面

需求量的:

  • 内部用户在捕获其LOGON名称(窗口身份验证)时无缝登录
  • 应提示外部用户(不在域上)手动登录

问题:

  • 可以用什么方法来实现这个?
  • 寻找IIS 7.5和web.config设置

找到的方法:

  1. 在1个网站,winlogin和weblogin(首页)中制作2页。在winlogin.aspx上允许windows auth = true和anonymous auth = false,在weblogin.aspx上允许反之亦然 用户使用ip命中weblogin,如果已知ip重定向到winlogin以捕获登录并在ip未知时重定向到weblogin
  2. 将winlogin.aspx作为主页并将401错误重定向到weblogin.aspx

1 个答案:

答案 0 :(得分:0)

这是如何配置IIS以进行集成身份验证。

http://netpl.blogspot.com/2012/06/iis-75-integrated-security-with-no.html

这将使您的站点可供Intranet用户使用而不提示凭据。

请注意,这也适用于网络用户。 HTTP 401的结果是显示内置的Web浏览器窗口。用户提供他/她的凭据并且在。

如果您希望在401(未经授权)的情况下显示自定义网络表单,则必须稍微欺骗浏览器:

http://www.codeproject.com/Articles/11202/Redirecting-to-custom-401-page-when-quot-Access-de

通过这种方式,您可以将未经授权的响应重定向到您选择的Web表单(例如,显示asp.net登录表单)。

虽然可以轻松配置集成身份验证,但在设置混合(集成/表单)身份验证时,请准备大量实验。每个版本的IIS都会发生变化;如果池处于经典模式和集成模式,IIS7的行为也会有所不同。

相关问题