覆盖ASP.NET成员资格提供程序

时间:2012-02-06 02:42:37

标签: asp.net asp.net-mvc

我正在尝试理解在自定义类中继承成员资格提供程序并重写它以实现自己的自定义提供程序。

当会员提供商首先陷入困境时,这有什么好处!

我正在试图弄清楚为什么人们在提供自己的时候继承自提供者。即使您覆盖成员资格提供程序类,您仍然必须创建逻辑。另外,如果我要创建自己的提供者,如果我不喜欢它,我不一定要为这个提供者建模我的方法签名或#方法。

3 个答案:

答案 0 :(得分:3)

是的,内置的会员提供商很糟糕(我自己不得不重新编写它,用于需要考虑性能和可扩展性的大型网站)。

使用它的好处在于,它很容易,文档记录合理,网上有很多例子。

从标准实现继承的重点是,只需改变一些工作方式即可。如果你要从头开始重新编写它,那么我会跳过继承(这就是我所做的)。

答案 1 :(得分:2)

您覆盖成员资格提供程序,以便您可以使用Membership API。这对许多目的都很有用。例如,如果您尝试将许多第三方Web论坛集成到您的应用程序中,则需要使用Membership API。

我无法理解人们在会员资格API中发现的缺点。成员资格不是为您的用户提供姓名,地址或其他信息。它严格来说是验证登录凭据和提供基于角色的安全性。就是这样。

如果要添加其他字段,请在自己的表中执行此操作,并使您的成员ProviderUserKey成为表中的查找值。

答案 2 :(得分:1)

主要优点是会员提供商只使用所有“开箱即用”的asp.net功能。诸如Forms Authentication,SiteMapProviders等之类的东西被设计为与asp.net成员资格提供者一起工作,因此通常并不是提供者本身就是关键,而是依赖于提供者的东西在重新实现时使其值得。

话虽如此,这并不意味着会员提供商将适合您的情况,因为您可能没有使用任何依赖于它的组件,在这种情况下,它不会实施它很有意义,因此你可以更好地编写适合自己需求的会员模型。