Search code examples
c#asp.netasp.net-mvcweb-configasp.net-membership

An Application Connect with Multiple database and set Membership cookies


I'm writing a method that set all of database connection string with it.The method has some parameters like connection string and cookie domain (for single sign on state) , ...

I can get Membership and role Information with specified connection string that send as a parameter.

            //membership
            System.Web.Security.SqlMembershipProvider mp = new System.Web.Security.SqlMembershipProvider();
            System.Collections.Specialized.NameValueCollection config_Membership = new System.Collections.Specialized.NameValueCollection();
            config_Membership.Add("connectionString", connectionstring);
            config_Membership.Add("applicationName", "/");
            mp.Initialize("SQL_test_Membership", config_Membership);
            var u = mp.GetUser(username, false);
            int TotalRecords = 0;
            var p = mp.GetAllUsers(0, 1, out TotalRecords);

           //login
            bool valid = mp.ValidateUser(username, password);

            System.Web.Security.SqlRoleProvider rp = new System.Web.Security.SqlRoleProvider();
            System.Collections.Specialized.NameValueCollection config_Role = new System.Collections.Specialized.NameValueCollection();
            config_Role.Add("connectionString", connectionstring);
            config_Role.Add("applicationName", "/");
            rp.Initialize("SQL_test_Role", config_Role);
            var roles = rp.GetRolesForUser(username);

I want to get ProfileBase Information like above code

https://technet.microsoft.com/nl-nl/library/system.web.profile.profilebase.initialize(v=vs.85).aspx

and I found below code:

            System.Web.Profile.ProfileBase pro = new System.Web.Profile.ProfileBase();
            System.Collections.Specialized.NameValueCollection config_profile = new System.Collections.Specialized.NameValueCollection();
            config_profile.Add("connectionString", connectionstring);
            config_profile.Add("applicationName", "/");
            pro.Initialize(?????)

but I dont know how to send parameter to pro.Initialize(), can any one help me? Thanks.


Solution

  • My problem solved. My code was changed :

                //login
                bool valid = mp.ValidateUser(username, password);
    
                if (valid)
                {
                    System.Web.Profile.ProfileBase pro = new System.Web.Profile.ProfileBase();
                    System.Collections.Specialized.NameValueCollection config_profile = new System.Collections.Specialized.NameValueCollection();
                    config_profile.Add("connectionString", connectionstring);
                    config_profile.Add("applicationName", "/");
                    pro.Initialize(username, true);
    
    
                    string Name = pro.GetPropertyValue("Name").ToString();
                    string Family = pro.GetPropertyValue("Family").ToString();
                    string phone = pro.GetPropertyValue("Phone").ToString();
                    string address = pro.GetPropertyValue("Address").ToString();
    
    
                }