有啥区别:Windows 身份验证、护照身份验证和表单身份验证?
Posted
技术标签:
【中文标题】有啥区别:Windows 身份验证、护照身份验证和表单身份验证?【英文标题】:What's the difference: Windows Authentication, Passport Authentication and Form Authentication?有什么区别:Windows 身份验证、护照身份验证和表单身份验证? 【发布时间】:2011-04-13 16:56:05 【问题描述】:刚开始制作一个网络应用程序,想知道哪个更好,或者至少它们之间的主要区别是什么(因为这可能对我使用它们的目的很重要)?
Windows 身份验证 护照认证 表单认证【问题讨论】:
读完之后,看来这取决于(我要么倾向于形式)所以只是一个详细的列表,起初我认为有些比其他的更快/更安全,我觉得还是不错的案例 【参考方案1】:我想说这在很大程度上取决于您的网络应用程序将做什么,因为每个应用程序都有其位置。下面是关于每一个的一些简要细节。
Windows 身份验证 使您无需创建自定义页面即可识别用户。 凭据存储在 Web 服务器的本地用户数据库或 Active Directory 域中。一旦被识别,您就可以使用用户的凭据来访问受 Windows 授权保护的资源。
表单身份验证使您能够使用自定义数据库(例如 ASP.NET 成员数据库)来识别用户。或者,您可以实现自己的自定义数据库。一旦通过身份验证 您可以引用用户所在的角色来限制对您网站的某些部分的访问。
护照身份验证依赖于 Microsoft 提供的集中式服务。 Passport 身份验证使用他或她的电子邮件地址和密码来识别用户,并且单个 Passport 帐户可以用于许多不同的网站。 Passport 身份验证主要用于拥有数千名用户的公共网站。
匿名身份验证不需要用户提供凭据。
http://msdn.microsoft.com/en-us/library/eeyk640h.aspx - ASP.NET 身份验证有关表单和窗口身份验证的更多详细信息
编辑 Rusyo链接更好:http://msdn.microsoft.com/en-us/library/ee817643.aspx
【讨论】:
【参考方案2】:什么时候可以使用的情况:
Windows 身份验证: 因为您将使用域中使用的登录名和密码...如果您使用 Windows 身份验证,您的 web 应用程序将(通常)必须部署在网络服务器中,并且您的所有用户(通常)都应该在域中为他们创建一个登录名。虽然跨域操作是可能的,但主要你不能在公共网站等非基于域的环境中使用它。如果您想包含一些域外的用户,这将是很困难的。
表单身份验证:您决定独立行动。您将为每个用户分配一个单独的用户 ID 和密码,并自行管理它们。这里的开销是您应该提供和限制创建和删除用户的方式。在这里,您不受任何域的限制。要让任何用户访问您的 webapp,都应该在您的 webapp 中注册。这类似于您在互联网上看到的任何邮件站点。
护照验证:您依赖 MS 来验证您的用户。这将为您的应用程序提供全局状态,但如果您仅将其部署到一小部分用户,您将强制他们创建一个护照帐户(如果他们没有),以便他们可以访问你的申请。
为了更清楚.. 无论您采用哪种方法,您仍然可以限制谁可以访问您的 webapp,还可以为每个用户定义自己的角色。
【讨论】:
【参考方案3】:这应该涵盖您正在寻找的所有内容(以及更多内容):
http://msdn.microsoft.com/en-us/library/ee817643.aspx
[Snap - 我也打算使用完全相同的报价;)]
【讨论】:
【参考方案4】:Windows 身份验证:因为您将使用域中使用的登录名和密码...如果您使用 Windows 身份验证,您的 web 应用程序将(通常)必须部署在网络服务器中,并且您的所有用户都应该(通常)在域中为他们创建一个登录名。虽然跨域操作是可能的,但主要你不能在公共网站等非基于域的环境中使用它。如果您想包含一些域外的用户,这将是很困难的。
Forms Authentication : 在这里你决定独立行动。您将为每个用户分配一个单独的用户 ID 和密码,并自行管理它们。这里的开销是您应该提供和限制创建和删除用户的方式。在这里,您不受任何域的限制。要让任何用户访问您的 webapp,都应该在您的 webapp 中注册。这类似于您在互联网上看到的任何邮件站点。
护照验证:您依赖 MS 来验证您的用户。这将为您的应用程序提供全局状态,但如果您仅将其部署到一小部分用户,您将强制他们创建一个护照帐户(如果他们没有),以便他们可以访问你的申请。
为了更清楚.. 无论您采用哪种方法,您仍然可以限制谁可以访问您的 webapp,还可以为每个用户定义自己的角色。
【讨论】:
以上是关于有啥区别:Windows 身份验证、护照身份验证和表单身份验证?的主要内容,如果未能解决你的问题,请参考以下文章
MicrosoftAccount、AzureAD 和 OpenIdConnect 身份验证有啥区别?
.NET Core 身份验证中的 AddJwtBearer 和 AddOpenIdConnect 有啥区别?