23. maj 2005 - 15:08Der er
25 kommentarer og 1 løsning
Opbevaring af databaseadgang
Jeg skal have lavet et system hvor man kan logge ind et centralt sted, i forbindelse med at man logger ind skal systemet have en databaseadgang ("SERVER=test.ms-sql.dk; Database=test;UID=bruger;Pwd=1234") til denne brugers database. Hvordan opbevare jeg denne database adgang på den mest sikre måde?
the_party_dog: Normalt opbevare jeg også min connection string i web.config, men i det har tilfælde har hver bruger deres egne database, dvs at en central database retunere denne connction string.
arne_v: jeg har også overvejet at bruge session, men session har kun en leve tid på x antal minutter og da man først skal blive logget ud af systemet når man trykker "log ud" så dur denne løsning ikke. Jeg har også overvejet at bruge Cookies men der ligger tekst jo i plain tekst så det er jo ikke særligt sikkert.
mit login fungere ved hjælp af ASP.NET authentication i web.config den kan man sætte til ikke at logge af efter a antal minutter. ja x kan konfiguereres men det belaster serveren at sætte den for højt.
En session er en mere avanceret måde at opbevare data på end en cookie. En session kan indholde objecter det kan en cookie ikke. En cookie sætter man en levetid på når man opretter den, det gør man ikke på en session.
vit postulat vil stadigt være at hvis sessionen timer ud så dine connection oplysninger i session forsvinder så vil du altid blive bedt om at logge ind igen da den side af sessionen også er forsvundet
Der er da ikke noget i vejen for at opbevare mere end een connection-streng i web.config. Du kan selvfølgelig ikke kalde dem for "ConnStr" alle sammen - de skal hedde noget forskelligt.
nielle: Det kunne jeg også, men jeg ville helst hvis jeg kunne få den fra database hvor de andre oplysninger om bruger er.
arne_v:
Jeg bruger følgende funktion for at logge ind:
[C#] public static void RedirectFromLoginPage( string userName, bool createPersistentCookie );
creatPersistentCookie har jeg sat til true!
Parameters userName Name of the user for cookie authentication purposes. This does not need to map to an account name and will be used by URL Authorization. createPersistentCookie Specifies whether or not a durable cookie (one that is saved across browser sessions) should be issued.
void LoadConnString() { // Opret forbindelse til din master-database objCommand.CommandText = "SELECT dbConn FROM tblConnectionStrings WHERE user = '"+ User.Name +"'";
i dette tilfælde vil jeg godt mene du kan bruge din funktion som statisk, og det vil måske næsten være det pæneste faktisk. Du skal bare sørge for at tilgå din session og user-object gennem HttpContext.Current
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.