Search code examples
asp.netvb.netmembership-provider

How to use ASP.NET4.5 Login Form with SQL Membership Provider?


I'm using the new login control in ASP.NET 4.5 webforms and need to check the username and password against my SQL Membership provider. I've already setup membership and roles and created my user via the Web Application Tool.

When I try to login, my username and password is not authenticating against the membership provider. Here are the relevant entries in web.confgi:

   <membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <add connectionStringName="WebTrendsConnectionString" enablePasswordRetrieval="false"
      enablePasswordReset="true" requiresQuestionAndAnswer="false"
      requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6"
      minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
      applicationName="/" name="DefaultMembershipProvider" 
      type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, 
      Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="DefaultRoleProvider">
  <providers>
    <add connectionStringName="DefaultConnection" applicationName="/"
      name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, 
      System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </providers>
</roleManager>

UPDATE: Still cannot login with username and password created in WSAT. Here's my connectionstring and providers:

<connectionStrings>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Data Source=PKFDB0;Initial Catalog=WebTrends; 
Integrated Security=False; User ID=*****; Password=******;" 
providerName="System.Data.SqlClient"/>

 <membership>
  <providers>
    <add connectionStringName="LocalSqlServer" enablePasswordRetrieval="true"
      enablePasswordReset="true" requiresQuestionAndAnswer="false"
      requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6"
      minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
      applicationName="/" name="DefaultMembershipProvider" 
      type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, 
      Version=1.0.0.0, 
      Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </providers>
</membership>
<roleManager enabled="true">
  <providers>
    <add connectionStringName="LocalSqlServer" applicationName="/"
      name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, 
      System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </providers>
</roleManager>

Solution

  • 1: Are you getting any errors or just invalid login?

    2: Add in the providers section of both Membership and Roles:

     <membership defaultProvider="DefaultMembershipProvider">
      <providers>
        <clear/>
        ......
      </providers>
    </membership>
    

    3: Make sure you have set the defaultProvider for both Membership and Roles.

    4: After making above changes, create a brand new user and try login.

    5: EDIT: Make sure you don't have an empty structure for Login Authenticate event.