2

设想:

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

要求:

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

问题:

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

发现的方法:

  1. 在 1 个网站内制作 2 个页面,winlogin 和 weblogin(首页)。在 winlogin.aspx 上允许 windows auth=true 和匿名 auth=false,反之亦然
  2. 将 winlogin.aspx 作为主页并将 401 错误重定向到 weblogin.aspx
4

1 回答 1

0

这是为集成身份验证配置 IIS 的方法。

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

这将使您的站点可供 Intranet 用户使用,而无需提示输入凭据。

请注意,这也适用于网络用户。作为 HTTP 401 的结果,会显示一个内置的 Web 浏览器窗口。用户提供他/她的凭据并进入。

如果您希望将自定义 Web 表单显示为 401(未经授权)的结果,则必须稍微欺骗浏览器:

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

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

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

于 2012-09-04T17:08:57.580 回答