0

我不明白为什么很多人谈论创建从 asp.net 库中的某些基类继承的成员资格提供程序并在 web.config 文件中注册提供程序。因为我们可以在不这样做的情况下得到任何我们想要的东西。我编写了一个静态类,它可以检查用户是否存在于相应的数据库中,添加用户,通过调用对用户进行身份验证 FormsAuthentication.SetAuthCookie,一切正常。简而言之,为什么我们需要告诉 web.config 文件我们使用哪个提供程序。为什么我们的提供者需要继承 Membership Provider ?

4

1 回答 1

2

为什么我们需要告诉 web.config 文件我们使用哪个提供者。

因为这就是提供程序模型在 ASP.NET 中的工作方式。如果您编写自定义提供程序,则需要在 web.config 中注册它。您还需要指明您的应用程序将使用哪个默认提供程序。角色提供者也是如此。

我们的提供者需要继承 Membership Provider 吗?

不,您不需要这样做。您可以有一个完全自定义的代码来执行会员提供者的任务,例如验证用户的凭据或创建新用户。

成员资格提供程序只是在大多数开发人员熟悉的 ASP.NET 应用程序中执行这些任务的标准方式。如果您决定推出自己的自定义代码,那么如果新开发人员加入您的团队,他将需要了解所有这些自定义代码。

您还提到您编写了一个静态类。对于这类事情,静态类的缺点是您将应用程序的不同层强耦合,从而难以单独测试和重用它们。成员资格提供者的全部意义在于它是一个抽象。此外,如果您不需要所有功能,则在编写自定义成员资格提供程序时无需覆盖所有方法。只有那些你实际使用的。

于 2013-02-16T17:52:36.980 回答