Windows身份验证 vs 表单身份验证

22

我正在尝试理解Windows身份验证、表单身份验证以及它们之间的区别。我感到困惑。能否有人帮助我澄清这一点。

谢谢。

4个回答

44

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

有4种类型的Windows身份验证方法:

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

2) 基本身份验证 - 必须在网络中发送Windows用户名和密码(以明文格式发送,因此不太安全)。

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

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

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


22

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

表单身份验证是.NET表单中独立的身份验证方法,可以连接到其他系统(如数据库)。


当两者都启用时会发生什么? - variable

10
很简单。 Windows身份验证 利用了 Windows登录系统http://en.wikipedia.org/wiki/Integrated_Windows_Authentication 而使用 Forms身份验证,用户需要手动提供用户名密码http://www.asp.net/web-forms/tutorials/security/introduction/an-overview-of-forms-authentication-vb Forms身份验证 还允许您选择从哪里访问登录数据。例如,它可以存储在您自己的本地数据库中。而Windows身份验证仅使用您的Windows登录数据。如果您的网络是使用企业/商业/域设置构建的,则此数据通常来自Active Directoryhttp://en.wikipedia.org/wiki/Active_Directory

如果我启用两者,如果我的Windows登录不起作用,它会重定向到登录页面吗? - variable

5

Windows身份验证-- 用户在登录其系统时提供的凭据将用于在IIS服务器上对用户进行身份验证。如果身份验证失败,则Internet Explorer中会显示一个弹出窗口,要求用户输入他的凭据,即用户名和密码。

表单身份验证-- 将提供默认的登录页面,类似于Facebook登录,用户将在此页面上进行身份验证,而不是自动获取来自系统凭据,即Windows系统的当前用户的凭据。如果用户请求安全页面并且尚未登录,则ASP.NET将重定向他/她到登录页面。一旦用户通过身份验证,他/她就可以访问所请求的页面。这里IIS不参与身份验证,完全取决于Web应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接