Jak nadawać Authorize roles bez użycia entityFramewrok?

0

Witam.
Jak używać mechanizmu [Authorize (roles="user")] bez użycia entityFramework. Wszystko w co znalazłem odnosi się właśnie do entityframework a ja nie chce go używać na razie.

Z baza komunikuje się za pomoca SqlConnection, SqlCommand i SqlDataReader, autoryzacja przy logowaniu dodaje ta metodą FormsAuthentication.SetAuthCookie, ale teraz chciałbym dodać role typu user admin itd. Ale wszystko w sieci odnosi sie do entity framwork.

0

ktoś coś? na przykład ze się nie da?

0

Da się.
Atrybut Authorize nie jest w żaden sposób bezpośrednio powiązany z EF.

Jak dla mnie to on po prostu sprawdza, czy w ClaimsIdentity usera znajduje się poświadczenie ClaimTypes.Role z odpowiednią wartością. Więc w momencie logowania użytkownika musiałbyś to wstawiać do jego poświadczeń.

0

Do ASP Identity musiałbyś napisać swoje UserStore, RoleStore które będą się komunikowały z bazą po twojemu, np NHibernate. Ja mam coś takiego zrobione i wieczorem mogę wrzucić na githuba

0

Czyli co konkretnie mam zrobić? bo dalej nic nie mogę znaleźć.

0

Używasz Asp.Net czy Asp.Net Core?

0

asp.net mvc

1

Zobacz tutaj: https://stackoverflow.com/a/14615211

Z uwagi, że używasz FormsAuthentication, a wtedy do cookie nie można dodać własnych claimsów to wystawiasz cookie, które zawiera jakiś unikalny identyfikator użytkownika, a później w Global.asax.cs podpinasz się pod Application_AuthenticateRequest i tam odczytujesz z cookie identyfikator użytkownika, na jego podstawie pobierasz role z jakiegoś store'a (baza czy cokolwiek posiadasz) i tworzysz nowego ClaimsPrincipala.

0

a ta stayczna klase roles. Tam jest taka metoda Roles.createRole("nazwa roli"); ale wyrzuca mi ciągle wyjątek ze nie może połączyć się z baza danych. Mam zrobiony bace localDb.mdf connection string w web.config, i spokojnie odczytuje i wstawiam dane. Zrobiłem nawe za pomoca entityframework ta klase co dziedziczy po dbcontect i tez odczytuje i wstawiam dane. ale użycie metody createrole wywala błąd

1 użytkowników online, w tym zalogowanych: 0, gości: 1