窗体身份验证是一种 ASP.NET 身份验证,其中,未经身份验证的用户定向到某一 HTML 窗体。一旦用户提供凭据后,系统将发出包含身份验证票证的 cookie。对于以后的请求,系统首先检查 cookie 以确定报表服务器是否已验证用户的身份。
Reporting Services 可以扩展,以便使用可通过 Reporting Services API 提供的安全可扩展接口支持窗体身份验证。如果您扩展 Reporting Services 以使用窗体身份验证,则将安全套接字层 (SSL) 用于与报表服务器的全部通信,以便防止恶意用户获取对其他用户的 cookie 的访问。SSL 使客户端和报表服务器能够彼此进行身份验证,并且确保没有其他计算机可以读取两台计算机之间的通信内容。通过 SSL 连接从客户端传送的所有数据都进行加密,以便恶意用户无法截获发送给报表服务器的密码或数据。
实现窗体身份验证通常是为了支持针对非 Windows 的其他平台的帐户和身份验证。向请求对某一报表服务器的访问的用户提供一个图形界面,并且提供的凭据将提交到安全机构以便进行身份验证。
窗体身份验证要求某一人输入凭据。对于直接与 Reporting Services Web service 服务通信的无人参与应用程序,窗体身份验证必须与自定义身份验证架构相结合。
在以下情况下窗体身份验证适用于 Reporting Services:
-
您需要存储不具有 Microsoft Windows 帐户的用户并验证其身份,并且
-
您需要提供您自己的用户界面窗体作为某一网站上不同页之间的登录页。
在编写支持窗体身份验证的自定义安全扩展插件时,应注意以下事项:
-
如果您使用窗体身份验证,则必须在 Internet 信息服务 (IIS) 的报表服务器虚拟目录上启用匿名访问。
-
ASP.NET 身份验证必须设置为“窗体”。在报表服务器的 Web.config 文件中配置 ASP.NET 身份验证。
-
Reporting Services 可以使用 Windows 身份验证或自定义身份验证来验证用户身份和向用户授权,但不能同时使用这两者。Reporting Services 不支持同时使用多个安全扩展插件。