Szenario: WCF-Dienst mit SqlRoleProvider für die Authentifizierung mit einem Sql Server 2012-Datenbankserver. WCF wird auf einem IIS7-Webserver gehostet.SqlRoleProvider: NullReferenceException beim Aufrufen von Roles.GetRolesForUser
sehen Sie bitte diesen Fehler:
System.NullReferenceException: Object reference not set to an instance of an object.
at System.Web.Security.Roles.GetRolesForUser(String username)
RoleManagement aktiviert ist.
Auf meiner lokalen Entwicklungsmaschine (Server 2012, iis7) funktioniert das gut. Wenn ich mich anmelde und die Methode anrufe, werden die Rollen abgerufen.
Auf dem anderen Server (Testumgebung) funktioniert es nicht. Ich kann mich anmelden (der Benutzer wird mit dem Benutzer authentifiziert und an die SQL Server-Datenbank übergeben), aber wenn ich versuche, die Rollen für diesen Benutzer abzurufen, erhalte ich eine Nullreferenz-Ausnahme.
Wie ist das möglich, hat jemand irgendwelche Hinweise darauf, wo dieses Problem auftreten könnte?
Mit freundlichen Grüßen.
Das jetzt funktioniert für mich, aber ich hatte auch alle Vorkommen der Anrufe auf „IsUserInRole()“ auch anzupassen. Seltsamerweise wird der Fix nur benötigt, wenn die Lösung mit VS2013 gestartet wird. Wenn VS2010 auf derselben Maschine gestartet wird, funktionieren die Anrufe ohne die Änderung. Zu Ihrer Information, ich habe ein .NET 3.5 WCF-Projekt, wenn das wichtig ist. – Marcel
Ich hatte das gleiche genaue Problem. Ich habe folgende Zeilen in Web.config zu Benutzer Roles.GetRolesForUser hinzugefügt, andernfalls müssen Sie den Benutzer Roles.Provider.GetRolesForUser verwenden. Ich verwende MVC5 mit OWIN Middleware aktiviert. –
user357086