static Type GetPropertyType(ProfileGroupSettings pgs, ProfilePropertySettings pps) { Type type = HttpApplication.LoadType(pps.Type); if (type != null) { return(type); } Type profileType = null; if (pgs == null) { profileType = ProfileParser.GetProfileCommonType(HttpContext.Current); } else { profileType = ProfileParser.GetProfileGroupType(HttpContext.Current, pgs.Name); } if (profileType == null) { return(null); } PropertyInfo pi = profileType.GetProperty(pps.Name); if (pi != null) { return(pi.PropertyType); } return(null); }
public ProfileGroupBase GetProfileGroup(string groupName) { ProfileGroupBase group = null; Type groupType = ProfileParser.GetProfileGroupType(HttpContext.Current, groupName); if (groupType != null) { group = (ProfileGroupBase)Activator.CreateInstance(groupType); } else { throw new ProviderException("Group '" + groupName + "' not found"); } group.Init(this, groupName); return(group); }
public static ProfileBase Create(string username, bool isAuthenticated) { ProfileBase profile = null; Type profileType = ProfileParser.GetProfileCommonType(HttpContext.Current); if (profileType != null) { profile = (ProfileBase)Activator.CreateInstance(profileType); } else { profile = (ProfileBase) new DefaultProfile(); } profile.Initialize(username, isAuthenticated); return(profile); }
static void InitProperties() { SettingsPropertyCollection properties = new SettingsPropertyCollection(); ProfileSection config = (ProfileSection)WebConfigurationManager.GetSection("system.web/profile"); RootProfilePropertySettingsCollection ps = config.PropertySettings; for (int i = 0; i < ps.GroupSettings.Count; i++) { ProfileGroupSettings pgs = ps.GroupSettings [i]; ProfilePropertySettingsCollection ppsc = pgs.PropertySettings; for (int s = 0; s < ppsc.Count; s++) { SettingsProperty settingsProperty = CreateSettingsProperty(pgs, ppsc [s]); ValidateProperty(settingsProperty, ppsc [s].ElementInformation); properties.Add(settingsProperty); } } for (int s = 0; s < ps.Count; s++) { SettingsProperty settingsProperty = CreateSettingsProperty(null, ps [s]); ValidateProperty(settingsProperty, ps [s].ElementInformation); properties.Add(settingsProperty); } if (config.Inherits.Length > 0) { Type profileType = ProfileParser.GetProfileCommonType(HttpContext.Current); if (profileType != null) { Type properiesType = profileType.BaseType; for (; ;) { PropertyInfo [] pi = properiesType.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly); if (pi.Length > 0) { for (int i = 0; i < pi.Length; i++) { properties.Add(CreateSettingsProperty(pi [i])); } } if (properiesType.BaseType == null || properiesType.BaseType == typeof(ProfileBase)) { break; } properiesType = properiesType.BaseType; } } } properties.SetReadOnly(); lock (Profiles_SettingsPropertyCollection) { if (_properties == null) { _properties = properties; } } }