Zgodnie z Twoim komentarzem wygląda na to, że nie masz jawnie skonfigurowanego dostawcy roli dla Twojej witryny.
Jeśli wszystko, co znajduje się w twoim web.config to:
<roleManager enabled="true" />
Następnie polegasz na domyślnych dostawcach zadeklarowanych dalej w hierarchii konfiguracji (machine.config, global web.config, itp.)
W pliku machine.config prawdopodobnie masz coś takiego:
<roleManager>
<providers>
<add name="AspNetSqlRoleProvider"
connectionStringName="LocalSqlServer"
applicationName="/"
type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<add name="AspNetWindowsTokenRoleProvider"
applicationName="/"
type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
Jak widać, pierwszy dostawca jest skonfigurowany do używania ciągu połączenia o nazwie LocalSqlServer - który również jest zwykle deklarowany w pliku machine.config:
<add name="LocalSqlServer"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient"/>
Jest to zaprojektowane do korzystania z lokalnej bazy danych opartej na plikach, która zostanie utworzona, jeśli jeszcze nie istnieje.
Aby więc role działały w Twojej witrynie, powinieneś zmienić główny plik web.config na coś takiego:
<roleManager enabled="true">
<providers>
<clear />
<add name="AspNetSqlRoleProvider"
connectionStringName="YourConnectionStringName"
applicationName="/"
type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
Użycie elementu