繁体   English   中英

这种身份验证模型在ASP.NET世界中称为什么

[英]What is this Authentication model called in the ASP.NET world

我知道ASP.NET支持各种身份验证模型,例如Windows,表单,护照和最近的Claims。

我有一个asp.net,提示用户输入用户名/密码进行登录,然后将输入的用户名/密码与应用程序数据库的用户表中的条目进行比较。 因此,我的问题是,这种身份验证模型的术语/名称是什么? 这在上面提到的ASP.NET支持的身份验证模型中将落在哪里?

我还看到,我知道的许多Internet站点都使用这种方法。

(注意:我使我的应用程序保持简单,当然它具有用户注册/添加页面,用于授权用户的配置文件表等)

Windows,表单,护照,声明等。身份验证是浏览器身份验证方案。 它们是浏览器与服务器通信以提供凭据的机制。 它们与数据库或任何其他存储机制无关(主要是..)。 这些只是实现细节。

FormsAuthentication使用cookie来存储加密的值,该值告诉服务器用户已通过身份验证。 如果最终结果是发出了FormsAuthentication cookie,那么如何验证用户身份(与通过将事物与数据库进行比较,使用服务等)无关紧要。

WindowsAuthentication稍有不同,浏览器和Web服务器进行通信以共享Kerberos票证以验证身份,或者用户将用户名密码输入到服务器要求浏览器弹出的框中。 在这种模式下,服务器本身管理进行身份验证的方式,并且不涉及应用程序。

BasicAuthentication使用HTTP标头以明文形式发送密码,从技术上讲,它是编码后的密码,但是众所周知,任何人都可以对其进行取消编码。 同样,它存储数据的实际方法取决于服务器,并且服务器在没有应用程序知识的情况下执行此操作。 重要的是它是通过HTTP标头完成的。

其他类型的身份验证也是如此,它们都是cookie和/或标头机制的变体。

这里的要点是,身份验证是关于任何给定的HTTP请求如何识别用户的身份,以及服务器和最终应用程序的身份。 不是如何存储或验证数据。 因此,由于您没有告诉我们服务器和浏览器的通信方式,因此尽管您几乎可以肯定它是FormsAuthentication的变体,但是我们无法告诉您如何定义身份验证。

编辑:

只是一小段历史课。 之所以称为FormsAuthentication,是因为身份验证系统没有使用浏览器中的弹出对话框来输入凭据,但是通常网页会为用户提供HTML表单来输入凭据。 除了按照请求传递cookie之外,浏览器根本没有真正参与身份验证过程。

它应该更准确地称为“ CookieBasedAuthentication”,但名称已被保留,可能会保持原样。 ASP.NET提供了一个称为FormsAuthentication的特定实现,但是您可以对任何基于cookie的身份验证方案执行相同的操作(尽管我不建议您自己滚动,但几乎可以肯定会犯安全错误)。

有人认为在Session中存储标记就足够了。 在任何情况下,请勿使用会话存储身份验证信息。 会话cookie未加密,很容易被盗和/或欺骗。 使用众所周知的方法。

其他答案可能已经显示了大多数细节。 但是,如果我们仔细地对IIS和ASP.NET级别进行分类,则以下是您应注意的差异,


IIS身份验证

这首先发生,因为HTTP数据包首先到达IIS级别。 IIS支持多种方式,

  • 匿名(在IIS配置中配置的匿名用户帐户)
  • Windows(浏览器端用户)
  • 基本(浏览器端用户)
  • 摘要(浏览器端用户)

这些身份验证方法在数据包级别的工作方式要求您捕获网络数据包并深入该级别的对话。

此身份验证的结果是IIS生成用户令牌,然后传递到ASP.NET管道。


ASP.NET身份验证

ASP.NET拥有自己的几种身份验证方法,

  • Windows(此处ASP.NET信任并解释IIS传递的用户令牌,并确定应创建哪个ASP.NET用户身份及其支持的角色,而无需在ASP.NET级别上进行进一步的身份验证。)
  • 表单(基于)身份验证(ASP.NET会忽略用户令牌,并使用cookie或类似机制来构建高级身份验证方法。在IIS方面,您通常设置匿名身份验证。)
  • 基于声明的身份验证,OpenID,OAthen等类似于基于表单的表单,它们对IIS生成的用户令牌不太在乎。

可以在IIS上使用非匿名,再在ASP.NET端使用非Windows,以设置所谓的混合身份验证。

所有要求用户输入您维护的用户名和密码的身份验证方法都是表单身份验证的一种形式。 这是因为您要他们填写表格(用户名和密码)以进行身份​​验证。

在此处此处阅读有关它的更多信息

编辑:Mystere Man提供的答案比我的答案更加完整和准确。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM