ASP.NET 4.6, Identity Framework und SQL Azure

Ich habe eine ASP 4.6 MVC Website (alle auf die neuesten Nuget Packages aktualisiert), die das integrierte Identity Framework mit Entity Framework auf SQL server verwendet.

Wenn ich den Connectionstring mit meinem databaseadministrator verwende, funktioniert alles, aber wenn ich auf einen zusätzlichen User User umschalte, bekomme ich eine "Login fehlgeschlagen für Benutzer …".

Ich habe den Benutzer in der Master-database damit erstellt:

CREATE LOGIN user1 with password='geheim' 

Und dann fügte er ihn der database hinzu:

 CREATE USER user1 FROM LOGIN user1 EXEC sp_addrolemember 'db_datareader', 'user1' EXEC sp_addrolemember 'db_datawriter', 'user1' 

Ich kann mit diesen Anmeldeinformationen von SQL Enterprise Manager zu SQL Azure verbinden und meine database abfragen, kann aber keine Identität in der database verwenden.

Irgendwelche Ideen, welche Rollen oder Rechte benötigt werden, um die database zu benutzen?

Nach langen Debugging-Sessions fand ich die Lösung: Das Identity Framework bindet, um die database zu scannen, wenn das throwIfV1Schema auf true gesetzt ist. Wie ich einen benutzerdefinierten IdentityDbContext verwende, musste ich den Konstruktor dazu wechseln:

 Public Sub New() MyBase.New(Settings.DSN, False) End Sub 

Jetzt benötigt das Startup des Identity Frameworks nur einen Benutzer für die aktuelle database.

Ich würde versuchen, den LOGIN-Namen anders als der USER-Name zu machen. Detaillierte Anleitungen zum Einrichten und welche Rollen finden Sie unter folgendem Link: SQL-databasesicherheit: Verwalten des databasezugriffs und der Anmeldesicherheit

Das folgende Beispiel ist von dieser Seite, die ähnlich ist, was Sie haben.

 -- first, connect to the master database CREATE LOGIN login1 WITH password='<ProvidePassword>'; CREATE USER login1User FROM LOGIN login1; EXEC sp_addrolemember 'dbmanager', 'login1User'; EXEC sp_addrolemember 'loginmanager', 'login1User';