我需要有关创建ASP.NET成员资格提供程序的时间和方式以及有关其生命周期和垃圾回收的信息。我试着寻找同样但却无法找到具体信息。
答案 0 :(得分:1)
我没有亲自创建CustomMembershipProvider(使用基于MVC4的SimpleMembershipProvider)。但是,查看周围的信息可以告诉您,当您实现从MembershipProvider派生的CustomMembershipProvider时,您将实现以下方法。
public override void Initialize(string name,NameValueCollection config)
Initialize()方法将由您的应用程序根调用(除非您希望根据您的不同需求控制生命周期)。
例如,如果在VS2012中创建新的MVC4 Web应用程序Internet模板,您将看到AccountController应用了一个属性“InitializeSimpleMembershipAttribute”。此属性确保成员资格提供程序仅在每个应用程序生存期初始化和初始化一次。
您可能会以不同的方式看到此初始化,例如在RegisterGlobalFilters()方法中注册您的属性,该方法在Global.asax.cs中的应用程序启动期间设置,或者在那里使用和初始化成员资格提供程序注册启动方法。
程序集:WebActivator.PreApplicationStartMethod
根据您初始化自定义成员资格提供程序的方式,您将看到它何时处理掉。如果它在应用程序启动期间作为应用程序初始化代码的一部分进行初始化,那么它将在应用程序拆除期间或在您使用“ApplicationShutdownMethodAttribute”注册的方法中进行处理。
请查看此link以获取有关如何创建自定义成员资格提供程序的详细信息,可能会有所帮助。
答案 1 :(得分:1)
会员提供者基于提供者模型,这是一个单身人士。
仅当应用程序使用/调用其中一个方法时,才会调用Provider Initialize 方法。初始化提供程序后,它将使用相同的设置,直到应用程序处理完毕。
换句话说,如果用户只浏览公开可用的页面,他们就不需要登录,应用程序永远不会有机会初始化会员提供者。
提供程序在应用程序结束时释放内存。 .NET Framework管理垃圾收集。 (我可能错了;我无法回答这个问题)