【问题标题】:Why using telling .net about provider?为什么使用告诉 .net 关于提供者?
【发布时间】:2013-02-17 01:58:17
【问题描述】:

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

【问题讨论】:

    标签: asp.net-mvc membership


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

    • 但是我没有在 web.config 中注册提供程序就完成了所有工作。很快,如果我们不这样做会出什么问题
    • 如果您的自定义类不是从 MemberhipProvider 类派生的,则无需在 web.config 中注册任何内容即可使其工作。
    • 我仍然不明白,如果我注册或不注册它会改变什么,这对我的应用程序有什么影响
    猜你喜欢
    • 2018-01-05
    • 2021-06-14
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    • 2017-08-01
    • 1970-01-01
    相关资源
    最近更新 更多