Nannette Thacker ShiningStar.net

ASP.net Web Application Development

Sponsors

News

See all Blog Posts by Nannette.

Nannette Thacker, consultant and owner of Shining Star Services LLC, specializes in development of custom dynamic database driven web applications utilizing ASP.net technologies. Nannette has been developing ASP sites since 1997. Nannette has written numerous articles on web development techniques and tutorials.

Nannette is the owner and developer of ChristianSinglesDating.com.

 Subscribe in a reader




Custom MembershipProvider ConnectionStringName Usage

By Nannette Thacker

This is an issue that seems to confuse a lot of new developers. How do you use the "connectionStringName" defined within the membership provider area of the web.config file within a custom membership provider? Big mouthful, eh? Okay, let's break it down.

Within the web.config file, you may define your connection strings. For our example, below I am setting up a connection string to a SQL Server database within my project's App_Data folder, but it could be a connection string to a remote database on a database server as well.

<connectionStrings>
    <add name="SSSDataMDFConnectionString" 
    connectionString="Data Source=.\SQLEXPRESS;
    AttachDbFilename=|DataDirectory|\SSSDatabase.mdf;
    Integrated Security=True;User Instance=True"
    providerName="System.Data.SqlClient" />
    </connectionStrings>

In the above example, I have named my connection string SSSDataMDFConnectionString. Now I want to setup my custom Membership Provider in the system.web section of my web.config:

<membership defaultProvider="SSSMembershipProvider">
      <providers>
        <clear/>
        <add name="SSSMembershipProvider" 
        type="SSSMembershipProvider" 
        requiresQuestionAndAnswer="false" 
        enablePasswordRetrieval="true" 
        enablePasswordReset="true" 
        description="Custom Membership Provider" 
        requiresUniqueEmail="true" 
        applicationName="/" 
        passwordFormat="clear" 
        userIsOnlineTimeWindow="15" 
        connectionStringName="SSSDataMDFConnectionString"/>
      </providers>
    </membership>

In the above example, I have inserted the connection string name within the "connectionStringName" property. Note that if your custom membership provider is defined within a namespace, to be sure to add that to the name of the provider itself. For instance, if your namespace is "SSS" then you would add the namespace to the definition:

<membership defaultProvider="SSS.SSSMembershipProvider">
      <providers>
        <clear/>
        <add name="SSS.SSSMembershipProvider" 
        type="SSS.SSSMembershipProvider" 

Now let's look at a few snippets from our custom membership provider class. In the snippet below, notice I have defined the connection string variable.

Public Class SSSMembershipProvider
    Inherits MembershipProvider

  Public connStr As String
        

Typically, you may obtain the value of various configuration file settings with the use of config():

config("enablePasswordReset")

However, we need to use the ConfigurationManager.ConnectionStrings Property to obtain the configuration setting. Within the initialize function of the class I now retrieve the value of the actual connection string that is associated with the name defined in the web.config:

Public Overrides Sub Initialize(ByVal name As String, _
ByVal config As System.Collections.Specialized.NameValueCollection)
        
connStr = ConfigurationManager.ConnectionStrings(config("connectionStringName")).ConnectionString

The above is a very long line, and just in case it is cut off on the right, I will break it on 2 lines so you don't miss it:

connStr = ConfigurationManager.ConnectionStrings(
config("connectionStringName")).ConnectionString

Now you're all set to use this in your class functions for accessing the connection:

Using conn As New SqlConnection(connStr)
    conn.Open()

May your dreams be in ASP.NET!

Nannette Thacker

Comments

hannodb said:

Any idea how to assign dynamic connectionstrings to the Membershipclass WITHOUT using the web.config?

# August 25, 2008 6:56 AM

Kalyan said:

I have a connectionstring which I want to encrypt and apply in the web.config file. How do I assign the decrypt connectionstring to my Web Part Provider.

# June 19, 2009 8:41 AM

Andrew Cooper said:

This was awesome; very helpful.  Thanks!

# October 19, 2009 6:43 PM
Leave a Comment

(required) 

(required) 

(optional)

(required)