我无法理解为什么许多人谈论创建从asp.net库中的某些基类继承并在web.config文件中注册提供程序的成员资格提供程序。因为我们可以得到任何我们想要的东西而不用这样我编写了一个静态类,可以检查用户是否存在相应的数据库,添加用户,通过调用FormsAuthentication.SetAuthCookie
对用户进行身份验证,一切正常。简而言之,为什么我们需要告诉web.config文件我们使用哪个提供程序。为什么我们的提供商需要继承成员资格提供者?
答案 0 :(得分:2)
为什么我们需要告诉web.config文件我们使用哪个提供程序。
因为这就是提供者模型在ASP.NET中的工作方式。如果您编写自定义提供程序,则需要在web.config中注册它。您还需要指出哪个是您的应用程序将使用的默认提供程序。角色提供者也是如此。
我们的提供商需要继承会员提供商吗?
不,你不需要这样做。您可以拥有一个完全自定义的代码来执行成员资格提供程序的任务,例如验证用户的凭据或创建新用户。
成员资格提供程序只是在大多数开发人员熟悉的ASP.NET应用程序中执行这些任务的标准方法。如果您决定推出自己的自定义代码,那么如果新开发人员加入您的团队,他将需要了解所有这些自定义代码。
你还提到你写了一个静态类。这类事物的静态类的缺点是,您强烈地耦合应用程序的不同层,使得难以单独测试和重用它们。成员资格提供者的全部意义在于它是一种抽象。此外,如果您不需要所有功能,则在编写自定义成员资格提供程序时不需要覆盖所有方法。只有你实际使用的那些。