繁体   English   中英

Microsoft会员提供商与自定义提供商对完整的自定义登录系统

[英]Microsoft Membership Provider Vs Custom Provider Vs Complete Custom Login System

我目前正在将一个非常古老但经常工作的ASP网站转换为ASP.Net。

它有一个完全自定义的书面用户管理系统。 虽然它工作正常,但它确实需要刷新,因为我希望它对于未来的一些项目更加灵活。

当我向某人询问此事时,他们说“你需要使用微软提供商”,并就微软如何免费发布所有这些东西以及它们有多好,应该尽可能多地使用它们做了演讲。

我已经对它进行了相当多的研究(主要是关于http://asp.net/learn上的视频),并且对一些功能印象非常深刻,因为似乎会有物品的拖放组件我的年龄要写。

但是,当前的成员资格数据库很难解释,它是一个完全自定义编写的数据库,它有许多内部关系...它与默认的Microsoft Provider并不真正“兼容”。

我已经看过如何:创建自定义成员资格提供程序? ,但我感到有点偏离了我的舒适区,并担心它会变慢,引入安全漏洞或根本无法工作。

在一天结束时,Microsoft成员资格提供程序应该为我工作 - 我真正需要的唯一自定义是登录使用我的数据库中的用户名/密码字段和创建用户脚本,其中有很多自定义代码到几个政党系统(需要提供服务等)。

我只是想知道,如果遇到类似情况你会怎么做?

  1. 使用Microsoft成员资格提供程序,并以某种方式让它为您工作(虽然我想建议)

  2. 使用Microsoft成员资格提供程序,但使用围绕代码自定义的自定义提供程序。

  3. 使用您自己完全定制的解决方案

我过去一直处于类似的情况。 在这两种情况下,我们围绕现有机制创建了提供程序的自定义实现(MembershipProvider,RoleProvider,ProfileProvider)。

在这两种情况下,我们只使用提供程序实现进行只读访问,例如,在web.config中为我们提供简单的验证gubbins等。 用户管理代码很好,因为它工作得很好。

该视频确实使事情变得复杂:)如果您要实现自定义提供程序,那么现有的反射器就是一个好的起点:)

当然,作为一个快速而肮脏的选项,您可以破解SQL成员资格提供程序使用的存储过程,但是提供服务的自定义代码可能会扩展它。

如果你考虑一下,服务的远程配置并不真正属于成员资格提供者,它并不是真正的会员功能 - 所有成员资格都提供用户名和密码以及身份验证。 我自己的感觉是你应该将服务的配置从那里移出,并在用户创建后在ASP.NET站点上执行它 - 即使这只是在成员资格提供者完成它之后调用存储过程。 如果您这样做,您可能会发现SQL成员资格提供程序将执行您需要的所有操作(可能还有角色和配置文件提供程序),因此您可以编写更少的代码!

如果现有提供程序正常工作(具有适合您数据的字段),请使用该字段开始。 您以后可以非常轻松地将其替换为客户提供商(只需更改一个配置值)。

请注意,没有“开箱即用”的ASP.NET管理界面,您需要自己动手或使用第三方。

使用我的专门MembershipProvider来处理我自己的数据库表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM