身份验证是从用户处获取标识凭据(如用户名和密码)并通过某些授权机构验证那些凭据的过程。如果这些凭据有效,则提交这些凭据的实体被视为已通过身份验证。在身份得到验证后,授权进程将确定该身份是否可以访问给定资源。
ASP.NET 通过身份验证提供程序(即包含验证请求方凭据所需代码的代码模块)来实现身份验证。ASP.NET 支持下表中描述的身份验证提供程序。
ASP.NET 身份验证提供程序 | 说明 |
Forms 身份验证 | 一种系统,通过该系统利用 HTTP 客户端重定向将未经身份验证的请求重定向到某 HTML 窗体。用户提供凭据并提交该窗体。如果应用程序对请求进行身份验证,系统会发出一个 Cookie,在其中包含用于重新获取标识的凭据或密钥。随后发出的请求在请求头中具有该 Cookie,ASP.NET 事件处理程序使用应用程序开发人员指定的任何验证方法对这些请求进行身份验证和授权。 |
Passport 身份验证 | 由 Microsoft 提供的集中身份验证服务,该服务为成员站点提供单一登录和核心配置文件服务。 |
Windows 身份验证 | ASP.NET 同时使用 Windows 身份验证和 Microsoft Internet 信息服务 (IIS) 身份验证。IIS 以下面三种方式之一执行身份验证:基本、简要或集成 Windows 身份验证。在 IIS 身份验证完成后,ASP.NET 使用已验证的身份来授权访问。 |
Forms 身份验证通常指这样一个系统,在该系统中使用 HTTP 客户端重定向将未经身份验证的请求重定向到
HTML 窗体。如果应用程序需要在登录时通过 HTML 窗体收集自己的用户凭据,那么选择 Forms 身份验证就很
好。用户提供凭据并提交该窗体。如果应用程序对请求进行身份验证,系统会发出一个 Cookie,在其中包含
用于重新获取标识的凭据或密钥。随后发出在请求头中具有该 Cookie 的请求。ASP.NET 事件处理程序使用应
用程序指定的任何验证方法对这些请求进行身份验证和授权。
注意,Forms 身份验证经常用于个性化服务,其中可以为已知用户自定义内容。在某些情况下,身份验证不是
关键,而标识才是关键,所以在持久性的 Cookie 中只需存储用户名就足够了,然后使用该 Cookie 来访问用
户的个性化信息。
Forms 身份验证的控制流
从服务器请求受保护的资源。 GET /default.aspx
重定向到登录页。 GET /logon.aspx?RETURNURL=/default.aspx
用户在登录窗体中输入凭据。 POST /logon.aspx?RETURNURL=/default.aspx
遵循重定向操作并再次请求原始资源。 GET /default.aspx