Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Identity 2.0 - ohne IdentityUserClaim und IdentityUserLogin
Thoxx
myCSharp.de - Member

Avatar #avatar-3329.png


Dabei seit:
Beiträge: 115

Themenstarter:

Identity 2.0 - ohne IdentityUserClaim und IdentityUserLogin

beantworten | zitieren | melden

Hallo,

ich möchte für eine MVC5 Anwendung zum ersten Mal das Identity 2.0 Framework auf einer bestehenden Datenbank nutzen.

Ich habe mir bereits einen eigenen IdentityUser implementiert, um Properties erweitert und in meinem Context auf eine eigene Tabelle gemapped.

Da ich weder Identity-Logins, noch die Identity-Claims benötige, würde ich mir eigentlich auch gerne die beiden Tabellen auf der Datenbank sparen wollen.
Gibt es dafür einen einfachen Weg?

Mein Versuch war wie folgt:


protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
	base.OnModelCreating(modelBuilder);
	modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

	modelBuilder.Ignore<IdentityUserClaim>();
	
	EntityTypeConfiguration<Nutzer> nutzerConfig = modelBuilder.Entity<Nutzer>().ToTable("Nutzer");
	
	nutzerConfig.Ignore(p => p.Claims);
}

Das baut und läuft zwar erst mal, aber spätestens wenn ich mir im Controller einen Nutzer per

UserManager.FindByName("XXX");
holen will, fliegt eine Exception:
Fehler
The navigation property 'Claims' is not a declared property on type 'Nutzer'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property.

Gibt es dafür eine einfache Möglichkeit?
Oder muss ich mir dafür einen eigenen UserStore implementieren? Das erscheint mir recht aufwändig.
private Nachricht | Beiträge des Benutzers
Taipi88
myCSharp.de - Member

Avatar #avatar-3220.jpg


Dabei seit:
Beiträge: 1044
Herkunft: Mainz

beantworten | zitieren | melden

Hi,

ohne mich näher damit beschäftigt zu haben - implementiert am Beispiel von Version 1?

Dann sollte dieser Artikel helfen:
http://www.codeproject.com/Articles/799571/ASP-NET-MVC-Extending-ASP-NET-Identity-Roles

LG
private Nachricht | Beiträge des Benutzers
Thoxx
myCSharp.de - Member

Avatar #avatar-3329.png


Dabei seit:
Beiträge: 115

Themenstarter:

beantworten | zitieren | melden

Wie im Titel steht, nutze ich Identity Version 2. Entsprechend habe ich mich auch an die Artikel und Beispiele zu Identity 2.0 gehalten.
Den Artikel von deinem Link kenne ich, hilft mir aber bei meinem Problem nicht weiter bzw. hat damit eher nichts zu tun.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16152

beantworten | zitieren | melden

Was hat denn Identity 2.0 ohne Claims und Login für einen Sinn?
Dann wäre es doch - im Prinzip - eine stink-normale Basic-Authentifizierung.

Diese also einfach so wegzulassen hätte ebenfalls keinen Sinn und ist meines Wissens nach auch nicht möglich.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Thoxx
myCSharp.de - Member

Avatar #avatar-3329.png


Dabei seit:
Beiträge: 115

Themenstarter:

beantworten | zitieren | melden

Da ich vorher mit ASP MVC bisher nur kleinere Sachen gemacht und noch keine Authentifizierung implementiert habe, habe ich nach ASP MVC Role Based Authentication gesucht.
Da bin ich als erstes (und auch immer wieder) auf das Identity Framework gestoßen.

Es lies sich schnell als NuGet Package einbinden und die Integration fande ich recht eingängig. Der Nutzer lässt sich leicht anpassen, PasswortResetTokens generieren, Validierungslogik für Nutzernamen und Passwörter anpassen, Nutzer Lockout, E-Mail Service anbinden und über den UserManager Mails verschicken.... ich war echt erstaunt wie einfach das alles einzubinden und zu benutzen ist und wie wenig Code man dafür braucht, weil es eben alles schon vorhanden ist. Genau die Sachen da, die ich brauche.

Nur brauche ich eben weder Claims, noch irgendwelche externen Logins (und soweit ich das vestanden habe, ist dafür das IdentityUserLogin da).
Jetzt nur deshalb kein Identity 2.0 benutzen? Das scheint mir doch etwas...übertrieben

Bevor ich jetzt anfange größere Handstände zu machen, kann ich auch mit zwei leeren Tabellen auf der Datenbank leben. Ich wollte ja nur wissen, ob es sich auf einfache Weise vermeiden lässt. Wenn nicht, dann eben nicht
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16152

beantworten | zitieren | melden

Also Identity 2.0 ist nicht wirklich verbreitet.
Gewöhnlich ist eine einfache Basic Auth, was ebenfalls Rollen-basiert sein kann; oder eben der am weitesten verbreitete Provider OAuth2.0, wobei dieser i.d.R. seltener als Host verwendet wird.

Wenn Du es einfach haben willst, dann nutze doch 2.0 in seiner Rohfassung und lass halt einfach die Tabellen leer.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
malignate
myCSharp.de - Member

Avatar #avatar-3206.png


Dabei seit:
Beiträge: 751

beantworten | zitieren | melden

Du kannst einen eigenen IUserStore implementieren und dann nur die passenden Interfaces implementieren:

https://msdn.microsoft.com/en-us/library/dn613259%28v=vs.108%29.aspx
private Nachricht | Beiträge des Benutzers
Thoxx
myCSharp.de - Member

Avatar #avatar-3329.png


Dabei seit:
Beiträge: 115

Themenstarter:

beantworten | zitieren | melden

Okay, das habe ich befürchtet. Danke für die Info.
Zitat von Abt
Wenn Du es einfach haben willst, dann nutze doch 2.0 in seiner Rohfassung und lass halt einfach die Tabellen leer.
Eben, das meinte ich ja vorher auch schon. Deshalb werde ich das jetzt so lassen. Bevor ich mir da den Aufwand mit dem UserStore mache, lasse ich lieber die beiden Tabellen drin.

Ansonsten gefällt mir das Identity 2.0 echt gut...
private Nachricht | Beiträge des Benutzers