Ik werk aan een custom implementatie van ASP.NET Identity 2.0 die werkt met ons eigen datamodel, een ander ORM, maar ook met andere business logic. Standaard is het zo dat je inlogt, er een ApplicationCookie wordt geset, waarna de standaard AuthorizeAttribute deze herkent en je inlogt. In onze eigen implementatie wil ik deze implementatie echter flink oprekken.
De bedoeling is dat je op allerlei manieren in kunt loggen, bijvoorbeeld:
Het probleem is bijvoorbeeld dat er bij SMS welliswaar een 'TwoFactorCookie' wordt gezet, maar deze wordt niet herkend als valide inlogmethode. Zo is HttpContext.Current.Identity null. Alleen een ApplicationCookie resulteert in een log in.
Waar ik momenteel mee worstel:
De bedoeling is dat je op allerlei manieren in kunt loggen, bijvoorbeeld:
- Impersonation
- Password reset token
- Google Authenticator (two-factor)
- Username + password
- SMS (two-factor)
- Etc.
Het probleem is bijvoorbeeld dat er bij SMS welliswaar een 'TwoFactorCookie' wordt gezet, maar deze wordt niet herkend als valide inlogmethode. Zo is HttpContext.Current.Identity null. Alleen een ApplicationCookie resulteert in een log in.
Waar ik momenteel mee worstel:
- Is het de bedoeling dat ik altijd ApplicationCookie gebruik om de gebruiker in te loggen en op een andere manier (bijvoorbeeld via Claims) het onderscheid maak qua inlogmethode, zodat er altijd maar één cookie is? Of is het handiger toch aparte cookies te gebruiken per inlogmethode? Zo ja, hoe zorg ik er voor dat 'XYZCookie' ook resulteert in een ingelogde gebruiker?
- Valt samen met punt 1: is het de bedoeling dat ik custom authentication middleware schrijf voor mijn andere inlogmethodes of kan ik gewoon de standaard CookieAuthenticationMiddleware daarvoor gebruiken? Het enige dat er moet gebeuren is dat er een cookie geset wordt, en aangeduid wordt op welke manier de user is ingelogd.
[ Voor 5% gewijzigd door Avalaxy op 30-10-2014 17:21 ]