有啥区别: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 有啥区别?

用于用户身份验证的个人访问令牌和 json Web 令牌有啥区别?

Facebook iOS SDK 和护照-facebook 身份验证