Vrstvy aplikace a user authentication   zodpovězená otázka

C#, ASP.NET MVC, Databáze

Ahoj. Včera jsem si řekl, že je čas naučit se něco z ASP.NET MVC, tak zkouším jednoduchou aplikaci. Mám tam DAL, BLL a UI vrstvu. Když ovšem založím tu UI vrstvu včetně user authentication, nasype mi to do té vrstvy všechno včetně modelů pro tuto funkčnost a samozřejmě to drží informace o uživatelích v jiném úložišti, než DAL vrstva. Chtěl bych to mít v jednom úložišti. Napadá mne několik možností, ale rád bych si nechal poradit od někoho kdo už s tímto má širší zkušenosti. Díky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Chápu to správně, že máte vlastní DL a BL? A vadí vám, že defaultní ukázkový příklad používá vlastní implementaci?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, mám samostatné DAL a BLL ale defaultní user management, který mi přidá Visual Studio do FrontEnd vrstvy, nepoužívá stejnou databázi jako moje DAL. Ptám se na čistý způsob řešení.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nepoužívat default authentication mode, ale napsat si vlastní MembdershipProvider (moc kódu to není) a ten si implementovat ve vlastní BL respektive DAL.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

MembershipProvider je zastaralý a není obecně moc dobrých důvodů ho v MVC používat. Není příliš s MVC integrovaný a proto doporučuji spíš používat vlastní služby místo Membershipu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No tady by mi to asi stačilo, ale nevadí. Napíšu si teda vlastní, stejně se mi bude do budoucna asi hodit. Díky za info.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý den Tomáši,

můžu jednu doplňující otázku? Nevíte o nějakém NuGet balíčku nebo nějaké knihovně která se dá použít namísto Membershipu a řeší hierarchycké role a oprávnění k jednoslivým akcím kontroleru?

děkuji za odpověď

Zbyněk Šulc

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý den,

nevím o žádné knihovně, která by vyloženě řešila hierarchický přístup.

Nicméně bych se podíval na ASP.NET Identity a claim based authentifikaci pomocí OWIN (viz template Internet Application v MVC5). Je to "potomek" Membership providerů a Forms Authentication.

Stejně si autorizaci pro přístup k akcím a controllerům budete muset vyřešit sám. Ale při správném použití to může v určitých případech pomoct jako základ.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Berte v potaz, že tento základní MVC projekt je pouze ukázkový. Používá interně EF pro ukládání a načítání. Pokud ho chcete použít jako základ pro novou aplikaci, vykuchejte z něj místa, kde se uživatelé načítají a ukládají a vložte místo toho váš kód.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback