Author: lluis
Date: 2005-07-01 14:33:48 -0400 (Fri, 01 Jul 2005)
New Revision: 46850
Modified:
trunk/mcs/class/System.Web/System.Web.Security/ChangeLog
trunk/mcs/class/System.Web/System.Web.Security/Membership.cs
Log:
2005-07-01 Lluis Sanchez Gual <[EMAIL PROTECTED]>
* Membership.cs: Read provider info from the config file.
Modified: trunk/mcs/class/System.Web/System.Web.Security/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/System.Web.Security/ChangeLog 2005-07-01
18:33:32 UTC (rev 46849)
+++ trunk/mcs/class/System.Web/System.Web.Security/ChangeLog 2005-07-01
18:33:48 UTC (rev 46850)
@@ -1,3 +1,7 @@
+2005-07-01 Lluis Sanchez Gual <[EMAIL PROTECTED]>
+
+ * Membership.cs: Read provider info from the config file.
+
2005-06-10 Lluis Sanchez Gual <[EMAIL PROTECTED]>
* MembershipUserCollection.cs:
Modified: trunk/mcs/class/System.Web/System.Web.Security/Membership.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.Security/Membership.cs
2005-07-01 18:33:32 UTC (rev 46849)
+++ trunk/mcs/class/System.Web/System.Web.Security/Membership.cs
2005-07-01 18:33:48 UTC (rev 46850)
@@ -34,13 +34,46 @@
using System.Collections;
using System.Collections.Specialized;
using System.Text;
+using System.Web.Configuration;
+using System.Configuration;
namespace System.Web.Security
{
- public abstract class Membership
+ public static class Membership
{
- private Membership ()
+ static MembershipProviderCollection providers;
+ static MembershipProvider provider;
+ static int onlineTimeWindow;
+
+ static Membership ()
{
+ System.Configuration.Configuration conf =
WebConfigurationManager.OpenWebConfiguration ("/");
+ MembershipSection section = (MembershipSection)
conf.GetSection ("system.web/membership");
+ providers = new MembershipProviderCollection ();
+
+ foreach (ProviderSettings prov in section.Providers) {
+ Type t = Type.GetType (prov.Type);
+ if (t == null)
+ throw new ConfigurationException
("Cannot find type: " + prov.Type);
+ if
(!typeof(MembershipProvider).IsAssignableFrom (t))
+ throw new ConfigurationException ("The
provided type is not a MembershipProvider subclass: " + prov.Type);
+
+ MembershipProvider pr = (MembershipProvider)
Activator.CreateInstance (t);
+ pr.Initialize (prov.Name, prov.Parameters);
+
+ if (provider == null || prov.Name ==
section.DefaultProvider)
+ provider = pr;
+
+ providers.Add (pr);
+ }
+
+ if (providers.Count == 0) {
+ provider = new SqlMembershipProvider ();
+ NameValueCollection attributes = new
NameValueCollection ();
+ provider.Initialize
("AspNetSqlMembershipProvider", attributes);
+ providers.Add (provider);
+ }
+ onlineTimeWindow = (int)
section.UserIsOnlineTimeWindow.TotalMinutes;
}
public static MembershipUser CreateUser (string username,
string password)
@@ -167,8 +200,6 @@
return Provider.FindUsersByName (nameToMatch,
pageIndex, pageSize, out totalRecords);
}
-
-
public static string ApplicationName {
get { return Provider.ApplicationName; }
set { Provider.ApplicationName = value; }
@@ -206,22 +237,20 @@
get { return
Provider.PasswordStrengthRegularExpression; }
}
- [MonoTODO]
public static MembershipProvider Provider {
- get { throw new NotImplementedException (); }
+ get { return provider; }
}
- [MonoTODO]
public static MembershipProviderCollection Providers {
- get { throw new NotImplementedException (); }
+ get { return providers; }
}
- [MonoTODO]
public static int UserIsOnlineTimeWindow {
- get { throw new NotImplementedException (); }
+ get { return onlineTimeWindow; }
}
- public event MembershipValidatePasswordEventHandler
ValidatingPassword {
+ [MonoTODO ("Fire it")]
+ public static event MembershipValidatePasswordEventHandler
ValidatingPassword {
add { Provider.ValidatingPassword += value; }
remove { Provider.ValidatingPassword -= value; }
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches