【问题标题】:ASP.NET Forms Authentication - When to use?ASP.NET 表单身份验证 - 何时使用?
【发布时间】:2011-01-12 06:03:07
【问题描述】:

我无法决定是否应该进行表单身份验证?表单身份验证通常用于个性化,其中内容是为已知用户定制的。我没有这样的要求。我在数据库中有用户名和密码,需要针对数据库对用户进行身份验证?在 ASP.NET 2.0 中实现相同目标的最佳推荐做法是什么?

【问题讨论】:

标签: forms-authentication asp.net-2.0


【解决方案1】:

Forms Authentication 用于身份验证,您可以使用会员信息来自定义页面,但您不必这样做。

【讨论】:

  • 与任何技术一样,有很多潜在用途。谢天谢地,您很少需要实现所有这些。
【解决方案2】:

TL;DR: FormsAuthenication 类与密码无关。您需要使用它来保持用户登录到您的网站。要验证密码,请使用 Membership 类或您自己的自定义系统。


来自FormsAuthentication 类的文档:

表单身份验证使用户和 网络密码验证 不需要的应用程序 Windows 身份验证。有表格 身份验证,用户信息是 存储在外部数据源中, 例如会员数据库,或在 的配置文件 应用。一旦用户 已认证,表单认证 在 cookie 或 URL 中的 经过身份验证的用户不需要 为每个请求提供凭据。

如果您查看 FormsAuthentication 的类定义,您会看到一个Authenticate 方法。文档说“根据存储在应用程序配置文件中的凭据验证用户名和密码。您不想使用它,因为您想存储用户和数据库中的密码,而不是配置文件。这是整个 FormsAuthentication 类中唯一与密码相关的方法。

发出表单票证的正确方法是使用 SetAuthCookie 方法,该方法不需要密码。那么如何/在哪里检查密码?

答案:Membership(或自定义)。

ASP.NET 2.0 版成员资格 功能提供安全凭证 应用程序用户的存储。它也是 提供了一个会员 API 简化验证用户的任务 与表单一起使用时的凭据 验证。会员提供者 抽象用于的底层存储 维护用户凭据。

会员是一个很大的话题,您确实需要花一些时间研究它并编写测试应用程序。我至少会阅读Multipart Series on ASP.NET's Membership, Roles, and Profile 的前三篇文章。

读完之后,您可能会想知道是否应该编写自己的自定义成员资格提供程序。您可能想在 SO 上查看一些答案,以获取有关 stackoverflow 的指导,或者在出现新问题时提出新问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多