3-vrstvá architektura - umístění a přístup connection stringu   otázka

ASP.NET WebForms

Ahoj,

na začátek bych rád poděkoval za všechny články, seriály a příspěvky zde na VBNET.cz - opravdu kus dobré práce. :-)

Mám drobné dilema, jak správně řešit:

Solution - 2x C# class library, 1x APS.NET website

Class library DAL a BL, a ASP.NET jako PL.

Kam a jak správně umístit connection string (DAL, PL - web.config, jinde)? Jak k němu efektivně přistupovat např. z vrstvy DAL a z PL s využitím Altairis.Web.Security providerů.

Předem díky za odpověď, popř. krátký příklad.

Pavel

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

Ahoj,

Ja ho mam napr. v xml u aplikace (winforms) a do jednotlivych parametru davam udaje z login okna.

<configuration>

<appSettings>

<add key="MyConnection" value="user id={0};pwd={1};data source={2};persist security info=False;initial catalog={3};Asynchronous Processing=true; MultipleActiveResultSets=true; Enlist=false" />

</appSettings>

</configuration>

Roman

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

Ahoj,

zajímavé řešení. Chápu tedy správně, že uživatelská práva řešíš nad DB tabulkami, dotazy, vlož. proc.? Pro každého uživatele jiný connection string, je tp správně s ohledem na bezpečnost?

Díky Pavel

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

Prava nad tabulkami nema skoro nikdo. Vse je reseno pres ulozene procedury. A bezpecnost ? Zalezi na ruznych pripadech, ja jsem treba nemohl pouzit Windows Authentication (dlouhe popisovani proc) nehlede na to, ze jsem loginem resil i aplikacni vrstvu.

(muzes menit zaznam, kdyz jsi v roli "Editor" - disable nebo enable tlacitko Editovat)

U tebe bude asi lepsi Windows Authentication (u webovych aplikaci)

Roman

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

Ahoj,

jak píšeš web. aplikace, čili nutností využít pro přihlašování uživatelů forms (jméno heslo). Co se týká práv uživatelů, ty spravuji pomocí rolí (používám Altairis.Web.Security providery - http://altairiswebsecurity.codeplex.com/... (uživatel přiřazen v roli, role má právo přistupovat někam). Co se týče případové studie - rozlišení práv mezi uživately, jelikož se jedná o ASP.NET používám binding expression - http://msdn.microsoft.com/en-us/library/.... A to tak, že vlastnosti např. visible kontrolky Asp:LinkButton nastavím pomocí zmíněných binding expression.

Pavel

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

Standardně se dává connection string do web.config souboru a dále se s ním pracuje v rámci DAL vrstvy(ta jediná může a měla by komunikovat s DB).Pokud používate jednu DB a jedno DB schéma,tak je nejlepší si napsat nějakou factory methodu,která Vám bude vracet intanci připojení do DB,popřípadě vytvářet novou..záleží zda budete požadovat singleton nebo connection pool.Vše ale záleží na architektuře dané aplikace.

Nicméně u webapp se Windows přihlašování používá většinou pouze v případě intranetu,jinak to logicky trochu ztrácí smysl.

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

Ahoj,

takto nějak to mám, connectionString pouze ve web.config, class library MyProperties, která zprostředkovává connection string dále vrstvě DAL. Akorát, řeším dilema: Pokud DataSet naklikám v designeru vrstvy DAL, vytvoří a uloží si v Properties vrstvy DAL nový connection string, ráb bych ale designeru předhodil aktuální z web.configu. Čili uvažuji ve vrstvě DAL provést nastavení properties dle web.config pomocí reflexe viz. http://stackoverflow.com/questions/25929... , bohužel se mi to prozatím nedaří.

Máte-li někdo nějáký nápad, prosím o radu. Díky

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

Mam chvilku cas, tak Ti napisu proc jsem Windows Authentication nepouzival u teto Winforms aplikace.

Pripadova studie:

V dilne se u jednoho PC strida Venca a Franta a nekdy i Dezo.

Kazdy z nich si musi zapsat, kolik udelal sroubku za 2 hodiny.

A bylo mnohem jednodussi si preloginovat aplikaci, nez prepinat uzivatele na tomto PC, ktery je tak pomaly, jak je bezne ve firmach, kde bezi na pozadi desitky procesu. A Vasek si chce svoje sroubky pripsat sobe (User ID Vaska se vlozi do sloupce Zamestnanec pri zadani poctu sroubku).Pokud bych mel Windows Authentication, tak bych musel povolit sloupec Zamestnanec k editaci, a to by si treba Franta mohl privlastnit Vaskovy sroubky (A uz vubec nemluvim o Dezovi). Samozrejme se naskyta desitky jinych reseni, ale kdyz je to v ramci Local Network ve firme, tak jsem se az tolik nebal pouzit SQL Server Authentication. A kdyz uz zadal sve jmeno v loginu, tak proc ho nevyuzit pro automaticke vlozeni do sloupce Zamestnanec.

Roman

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