Windows 身份验证与表单身份验证

Posted

技术标签:

【中文标题】Windows 身份验证与表单身份验证【英文标题】:windows authentication vs forms authentication 【发布时间】:2012-03-15 16:17:17 【问题描述】:

我正在尝试了解 Windows 身份验证、表单身份验证的概念及其区别。我很迷惑。有人可以帮助我澄清这一点。

谢谢。

【问题讨论】:

【参考方案1】:

Windows 身份验证 提供程序是 ASP.NET 应用程序的默认身份验证提供程序。当使用此身份验证的用户登录应用程序时,凭据通过 IIS 与 Windows 域匹配。

有 4 种 Windows 身份验证方法:

1) 匿名身份验证 - IIS 允许任何用户

2) 基本身份验证 - Windows 用户名和密码必须通过网络发送(以纯文本格式,因此不是很安全)。

3) 摘要式身份验证 - 与基本身份验证相同,但凭据是加密的。仅适用于 IE 5 或更高版本

4) 集成 Windows 身份验证 - 依靠 Kerberos 技术,具有强大的凭据加密

表单身份验证 - 此身份验证依赖于开发人员编写的代码,其中凭据与数据库进行匹配。凭据在 Web 表单中输入,并与包含用户信息的数据库表匹配。

【讨论】:

【参考方案2】:

Windows 身份验证是指在运行应用程序的机器上针对 Windows 用户帐户进行身份验证。

表单身份验证是一种在 .NET 表单中进行身份验证的独立方法,您可以连接到其他一些系统,例如数据库。

【讨论】:

【参考方案3】:

这很简单。 Windows Authentication 使用 Windows Login system。 http://en.wikipedia.org/wiki/Integrated_Windows_Authentication

对于Forms Authentication,用户需要手动提供usernamepassword。 http://www.asp.net/web-forms/tutorials/security/introduction/an-overview-of-forms-authentication-vb

Forms Authentication 还允许您选择从何处访问登录数据。例如,它可以存储在您自己的local database 中。虽然 Windows 身份验证只会使用您的 Windows 登录数据。如果您的网络是使用enterprise/buisness/domain 设置构建的,则此数据通常来自Active Directory。 http://en.wikipedia.org/wiki/Active_Directory

【讨论】:

【参考方案4】:

Windows 身份验证-- 用户将根据他在登录系统时提供的凭据在 IIS 服务器上进行身份验证。如果身份验证失败,则 Internet Explorer 中将显示一个弹出表单,询问他的凭据,即用户名和密码。

表单身份验证-- 将提供一个默认登录页面,如 Facebook 登录,用户将在其中进行身份验证,而不是自动从系统凭据(即 Windows 系统的当前用户)获取凭据。如果用户请求安全页面但尚未登录,则 ASP.NET 会将他/她重定向到登录页面。一旦用户通过身份验证,他/她将被允许访问请求的页面。这里 IIS 对身份验证不生效,它完全依赖于 web 应用程序。

【讨论】:

以上是关于Windows 身份验证与表单身份验证的主要内容,如果未能解决你的问题,请参考以下文章

表单身份验证和 Windows 身份验证的混合?

将 Forms 身份验证与 Windows 身份验证混合使用

使用表单身份验证进行模拟

在 Silverlight 中使用表单进行 Windows 身份验证 [重复]

为 asp.net 应用程序连接 sql server(Windows 身份验证与 SQL Server 身份验证)的最佳方式

Windows身份验证,后备登录表单