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

Wil*_*Wil 28 asp.net asp.net-membership membership-provider custom-membershipprovider

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

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

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

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

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

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

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

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

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

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

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

Jer*_*Gee 8

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

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


blo*_*art 8

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

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

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

  • 我没有看过该视频,但MSDN上的"如何:实现自定义成员资格提供程序"(http://msdn.microsoft.com/en-us/library/ms366730.aspx)给出了一个非常好的介绍简单的成员资格提供者,包括可以很容易地适应的数据库实施建议. (2认同)