3 Stimmen

Nicht möglich, ein Objekt vom Typ 'System.Web.Security.SqlRoleProvider' in den Typ 'WebMatrix.WebData.SimpleRoleProvider' umzuwandeln

Ich entwickle eine MVC-Web-App mit Entity Framework. Ich habe die Datenbankmigration aktiviert, damit ich bei jedem Update einige Stammdaten hinzufügen kann. Genauer gesagt möchte ich zwei Benutzer und zwei Rollen hinzufügen; daher sieht die Konfigurationsdatei so aus:

        var roles = (SimpleRoleProvider)Roles.Provider;
        var membership = (SimpleMembershipProvider)Membership.Provider;

        //// zwei Rollen erstellen
        if (!roles.RoleExists("Admin"))
        {
            roles.CreateRole("Admin");
        }
        if (!roles.RoleExists("User"))
        {
            roles.CreateRole("User");
        }

Es scheint jedoch ein Problem beim Casting zu geben; es wirft eine Ausnahme

 Unable to cast object of type 'System.Web.Security.SqlRoleProvider' to type 'WebMatrix.WebData.SimpleRoleProvider'.

Ich vermute, dass dies ein Konfigurationsproblem sein könnte, bin mir aber nicht sicher. Ist jemand auf das gleiche Problem gestoßen?

5voto

MarcinJuraszek Punkte 120867

Dies liegt daran, dass SqlRoleProvider nicht von SimpleRoleProvider erbt. Sie können jedoch versuchen, SimpleRoleProvider Konstruktor (RoleProvider) zu verwenden:

var roles = new SimpleRoleProvider(Roles.Provider);

4voto

ppoliani Punkte 4486

Ich habe das sortiert. Das Problem war anscheinend mit der Web-Konfiguration verbunden. Ich habe die folgenden Zeilen zur web.config-Datei hinzugefügt:

um den Rollenanbieter explizit festzulegen. Jetzt gibt Roles.Provider eine Instanz von WebMatrix.WebData.SimpleRoleProvider zurück; daher muss ich nicht mehr konvertieren

1voto

PAWAN RAJ Shakya Punkte 166

Ich habe dieses Problem gelöst, indem ich den folgenden Code in die web.config zwischen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X