身份验证是从用户获取名称和密码等标识凭证并根据某些机构验证这些凭据的过程。如果凭据有效,则提交该凭据的实体被视为通过身份验证的标识。一旦标识通过了身份验证,则身份验证过程会确定该标识是否可以访问给定的资源。
ASP.NET 通过身份验证提供程序、包含验证请求者凭据所需代码的代码模块来实现身份验证。ASP.NET 支持下表所描述的身份验证提供程序。
ASP.NET 身份验证提供程序 | 描述 |
---|---|
Forms 身份验证 | 通过其可将没有通过身份验证的请求重定向到使用 HTTP 客户端重定向的 HTML 窗体的系统。用户提供凭据并提交该窗体。如果应用程序验证该请求,系统就会发出包含凭据或密钥的 Cookie 以重新获取该标识。后续的请求在请求标题中随 Cookie 一起发出,ASP.NET 事件处理程序会使用应用程序开发人员指定的任何验证方法去验证请求并给其授权。 |
Passport 身份验证 | 由 Microsoft 提供的集中身份验证服务,用于为成员站点提供单一登录和核心配置服务。 |
Windows 身份验证 | ASP.NET 会结合 Internet 信息服务 (IIS) 身份验证使用 Windows 身份验证。IIS 以下列三种方式执行身份验证:基本身份验证、摘要式身份验证或集成 Windows 身份验证。当 IIS 身份验证完成后,ASP.NET 会使用验证过的标识授权访问权限。 |
要为 ASP.NET 应用程序启用身份验证提供程序,仅需按照以下方法为应用程序配置文件创建一个条目。
// Web.config file
<authentication mode= "[Windows|Forms|Passport|None]"/>
模式可设置为下列身份验证模式之一:Windows、Forms、Passport 或 None。默认为 Windows。如果将模式设置为 None,ASP.NET 不会对该请求应用任何附加身份验证 - 当要实现自定义的身份验证方案,或只想使用匿名身份验证并想获得尽可能高的性能级别时,这是很有用的。
身份验证模式不能在应用程序根目录以下的级别进行设置。其他 ASP.NET 模块也是如此,在 URL 中的子目录会继承身份验证模块,除非其被明确覆盖。