有什么区别:Windows身份验证,Passport身份验证和表单身份验证?

时间:2010-09-17 12:08:50

标签: c# asp.net sql authentication

刚开始制作一个Web应用程序并且想知道哪个更好,或者至少它们之间的主要区别是什么(因为它可能对我使用它们很重要)?

  • Windows身份验证
  • Passport身份验证
  • 表单身份验证

4 个答案:

答案 0 :(得分:21)

我想说这很大程度上取决于你的网络应用程序将做什么,因为每个人都有自己的位置。以下是每个人的一些简要细节。

Windows身份验证使您无需创建自定义页面即可识别用户。 凭据存储在Web服务器的本地用户数据库或Active Directory域中。识别后,您可以使用用户凭据访问受Windows授权保护的资源。

表单身份验证使您能够识别具有自定义数据库的用户,例如ASP.NET成员资格数据库。或者,您可以实现自己的自定义数据库。一旦通过身份验证 您可以引用用户所在的角色来限制对网站部分的访问。

Passport身份验证依赖于Microsoft提供的集中服务。 Passport身份验证使用他或她的电子邮件地址和密码来识别用户,并且单个Passport帐户可以与许多不同的Web站点一起使用。 Passport身份验证主要用于拥有数千名用户的公共网站。

匿名身份验证不要求用户提供凭据。

http://msdn.microsoft.com/en-us/library/eeyk640h.aspx - ASP.NET身份验证有关表单和窗口身份验证的更多详细信息

编辑 Rushyo链接更好:http://msdn.microsoft.com/en-us/library/ee817643.aspx

答案 1 :(得分:5)

您可以使用以下内容的情况:

Windows身份验证:因为您将使用登录&域中使用的密码...如果您使用Windows身份验证,您的Web应用程序(通常)必须部署在网络服务器中,并且您的所有用户应(通常)在域中为其创建登录。虽然跨域操作是可行的,但主要是您无法在非基于域的环境(如公共网站)中使用它。如果您想要包含一些域外用户,那将很难。

表单身份验证:您决定独立行动。您将为每个用户分配一个单独的userId和密码,并自行管理它们。这里的开销是你应该提供和限制创建和删除用户的方式。在这里,您不限于任何域。任何访问您的webapp的用户都应该使用您的webapp注册。这类似于您在互联网上看到的任何邮件网站。

Passport身份验证:您依靠MS来验证您的用户。这将为您的应用程序提供全局状态,但如果您只将其部署到一小组用户,您将强制他们创建一个护照帐户(如果他们没有),以便他们可以访问你的申请。

更清楚..无论您遵循哪种方法您仍然可以限制谁可以访问您的网络应用程序,还可以为每个用户定义自己的角色。

答案 2 :(得分:3)

这应涵盖您正在寻找的所有内容(以及更多内容):

http://msdn.microsoft.com/en-us/library/ee817643.aspx

[Snap - 我完全会使用完全相同的引用;)

答案 3 :(得分:-3)

Windows身份验证:正如您将使用登录&域中使用的密码...如果您使用Windows身份验证,您的Web应用程序(通常)必须部署在网络服务器中,并且您的所有用户应(通常)在域中为其创建登录。虽然跨域操作是可行的,但主要是您无法在非基于域的环境(如公共网站)中使用它。如果您想要包含一些域外用户,那将很难。

表单身份验证:您决定独立行动。您将为每个用户分配一个单独的userId和密码,并自行管理它们。这里的开销是你应该提供和限制创建和删除用户的方式。在这里,您不限于任何域。任何访问您的webapp的用户都应该使用您的webapp注册。这类似于您在互联网上看到的任何邮件网站。

Passport身份验证:您依靠MS来验证您的用户。这将为您的应用程序提供全局状态,但如果您只将其部署到一小组用户,您将强制他们创建一个护照帐户(如果他们没有),以便他们可以访问你的申请。

更清楚..无论您遵循哪种方法您仍然可以限制谁可以访问您的网络应用程序,还可以为每个用户定义自己的角色。