C# týden Slevový týden - Březen
Využij náš slevový týden a získej až 30 % bodů navíc zdarma! Zároveň také probíhá C# týden se slevou na e-learning až 80 %
Hledáme fulltime programátora do ITnetwork týmu -100% homeoffice, 100% časově flexibilní #bezdeadlinu Mám zájem!

Diskuze: Role/oprávnění v intranetové (ad auth) aplikaci

Aktivity (4)
Avatar
Petr P
Člen
Avatar
Petr P:25. března 10:17

Ahoj, rád bych požádal o pomoc, přepisujeme staré menší (intranetové) aplikace do jednoho komplexního řešení a lámu si hlavu s tím jak udělat rozdělení uživatelů do rolí na základě jedné sql tabulky (id záznamu, userid(k napárování s AD userid), role (admin, operátor, reader), tak aby to bylo mvc .net core 3.1 košér.

Zkusil jsem: Načítat sql tabulku v kontrolerech (userid a porovnat s uživatelem z httpcontextu, a ukládat si hodnotu attributu role) pro každé view mi přijde jako metodicky špatné řešení i když bude fungovat.

Chci docílit: Cílem je mít rozdělení rolí v AD intranetové aplikaci, tak aby se nikde nemuselo ukládat heslo uživatelů nebo aby se uživatelé nemuseli přihlašovat, protože už jsou přihlášení v AD, a tuto tabulku by měl možnost vidět a upravovat jen admin aplikace - pár vyvolených AD userid.
.NetCore se teprve učím tak bych rád doporučení se správným přístupem tohoto řešení, ne to nějak udělat aby to fungovalo. Děkuji

 
Odpovědět
25. března 10:17
Avatar
Odpovídá na Petr P
Michal Štěpánek:25. března 13:42

Taky jsem s uživateli z AD laboroval u intranetové apky a zjistil jsem, že mi to dělá víc problémů, než užitku, páč na každém stroji je přihlášen jiný uživatel, u několika PC je více možných uživatelů (např. recepce, ošetřovna, apod), kteří jsou ale na stroji přihlášeni pod jedním účtem z AD a když si k tomu sedne náhodou někdo jiný, počítač to nemá šanci zjistit a odlišit uživatele. Proto jsem to zavrhl a používám individuální uživatelské účty s ASP.NET identity... Když pak je těch aplikací víc, může mít každý uživatel v každé apce jiná práva, která jednoduše nastavím.

Editováno 25. března 13:43
Nahoru Odpovědět
25. března 13:42
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Petr P
Jaroslav Smrž:25. března 13:46

Ahoj, na to, co popisuješ se nejlépe hodí využít MS Identity - v .net core aplikaci s user accounts již připraveno. Ty budeš ale potřebovat rozšíření, abys mohl spravovat role. Přepíšeš si tedy defaultní identity na svoje. To provedeš tak, že klikneš pravým tlačítkem na projekt v solution exploreru, vybereš New scaffolded item a Identity. Dále vybereš layout, který budeš chtít použít, soubory, které chceš přepsat (v tvém případě asi všechny) a databázový kontext. Ten můžeš použít buď stávající nebo si vytvořit nový s vlastní rozšiřující třídou pro identity. Nezapomeň pak parametry předat ve startupu a změnit AddDefaultIdentity na AddIdentity. Dále si pak vytvoříš vlastní třídu a kontroler, který bude dědit z IdentityRole a máš hotovo.

Nahoru Odpovědět
25. března 13:46
/* Life runs on code */
Avatar
Petr P
Člen
Avatar
Petr P:26. března 21:49

Děkuju moc za rady, o víkendu to budu zkoušet tak dám příští týden vědět jak se mi zadařilo :)

 
Nahoru Odpovědět
26. března 21:49
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.