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!
Avatar
Petr P
Člen
Avatar
Petr P:25. marca 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.

Skúsil som: 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.

Chcem docieliť: 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

 
Odpovedať
25. marca 10:17
Avatar
Odpovedá na Petr P
Michal Štěpánek:25. marca 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.

Editované 25. marca 13:43
Hore Odpovedať
25. marca 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íjať nasledujúce firmy, ktoré možno hľadajú práve teba!
Avatar
Odpovedá na Petr P
Jaroslav Smrž:25. marca 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.

Hore Odpovedať
25. marca 13:46
/* Life runs on code */
Avatar
Petr P
Člen
Avatar
Petr P:26. marca 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 :)

 
Hore Odpovedať
26. marca 21:49
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 4 správy z 4.