Search code examples
asp.netroleprovider

ASP.NET role provider: using sql server instead of sql express?


I want to use Full SQL Server 2005 as a data store for my role provider.

I installed the aspnetdb using the wizard.

in my application I added the following connection string

<connectionStrings>
            <clear/>
        <add name="LocalSqlServer" connectionString="Data Source=localhost;Initial Catalog=aspnetdb;Integrated Security=True" providerName="System.Data.SqlClient"/>
    </connectionStrings>

then I configured my role provider as follows:

<roleManager enabled="true">
            <providers>
                <clear/>
                <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer"

                applicationName="/MyApp"

                type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />


            </providers>
        </roleManager>

I create roles programmatically like this:

if (Roles.RoleExists("RoleName"))
                        Roles.CreateRole("RoleName");

but when I check my aspnetdb from the SQL management studio I found that the table aspnet_Roles has no records and that the roles where not inserted.

so is there anything wrong with these steps or something missing ?

thanks


Solution

  • You have a typo, you're missing ! (if it doesn't exist, create it):

    if (!Roles.RoleExists("RoleName"))
                            Roles.CreateRole("RoleName");