Avatar billede brian0905 Nybegynder
29. april 2008 - 09:03 Der er 7 kommentarer

Windows Forms sikkerhed login komponent

Hejsa,
Jeg skal til at lave en login komponent til mit system. I den forbindelse vil jeg lige høre jeres andres erfaringer omkring det. Jeg skal bruge to typer login til mit system. Det ene er almindeligt login hvor man i mit system angiver et rolle, brugernavn og et password og så kan brugeren herefter logge ind i systemet. Den anden måde er at bruge windows security.

Hvordan gør man så det? Sender en Access Database med ud, som brugere er oprettet i? eller tager man udgangspunkt i at brugeren SKAL have en SQL Server installeret? Jeg hælder mest til Access delen, da man så hurtigt er i gang med at bruge systemet, og ikke er dybt afhængig af en Access Database.

Hvordan bruger man windows security? skal jeg smide brugere fra Active Directory ned i min database? eller skal de logge ind direkte uden om databasen?

Ideer og overvejelser modtages gerne...
Avatar billede lasserasch Juniormester
29. april 2008 - 09:17 #1
Her et par kommentarer :

1. Glem Access... og glem alt om at lægge noget ud på klienten. Brugerrettigheder skal styres fra en central database uanset hvilken form for db det er. Jeg ville vælge en MS SQL database. Hvis du ikke har en standard købe udgave heraf, så hent MS SQL Express på nettet. Den er gratis og fungerer fint.

2. Det er en god ide at bruge Active Directory til brugervalidering i dine programmer, hvis i alligevel ander Active Directory til bruger/rettigheds styring.

Det er ikke noget man bare lige sådan gør. Det kræver at man sætter sig ind i hvordan man koder op mod Active Directory, men det kan sagtens lade sig gøre. Hvis du vælger denne måde at validere brugere på, så ville jeg også styre rettigheder til systemet via AD. F.eks. vha. gruppemedlemsskab.

Der findes masser af gode link på nettet omkring brugervalidering via AD.

Jeg har et link liggende til en super god side, som viser hvordan man koder mod AD (næsten for dummies). Det ligger på min laptop derhjemme. Smider det lige i aften....

God fornøjelse.

Mvh.
Lasse
Avatar billede aaberg Nybegynder
29. april 2008 - 10:08 #2
Lige et spørgsmål. Er dette en Windows applikation eller en ASP.NET applikation? Hvordan skal det virke, Skal alle klienterne koble på en central database, eller skal de koble på en lokal database?
Avatar billede aaberg Nybegynder
29. april 2008 - 10:09 #3
Ok, du skriver jo i overskriften at det er Windows forms... god morgen!

Da er det spørgsmål jo besvaret.
Avatar billede brian0905 Nybegynder
29. april 2008 - 13:01 #4
Det bliver lavet med remoting, således klienterne beder serveren om at validere brugere. Så serveren bliver koblet på en database.
Avatar billede lasserasch Juniormester
29. april 2008 - 14:36 #5
Hvorfor dog det? Så har du jo single point of failure!

Selvfølgelig ved jeg ikke hvor hård en programmør du er, så med forebehold for det selvfølgelig. Men jeg tror nu at det ville være noget mere sikkert hvis du lod hver klient koble op mod SQL serveren direkte. + Hvis du insisterer på at lave en server applikation, så bør du i hvert fald lave en fledtrådet applikation. Ellers skal hver klient vente på serveren, hvis den er igang med at svare en anden klient.

Min personlige holdning til "små" serverapplikationer er, at de er gode hvis du har brug for at have forbindelse mellem klienterne for at lave realtime synkronisering af data eller noget i den dur. Men hvorfor komme et ekstra led på vejen mellem databasen og klienten?

Hvis den server applikation går ned, så mister alle dine klienter adgang. Det synes jeg er en alt for usikker løsning. Den skal i hvert fald gennemarbejdes 110% din server applikation, og ud fra dit spørgsmål her, så (og det er ikke for at virke bedrevidende, men jeg taler af praktisk erfaring) tror jeg ikke dit niveau er højt nok til det umiddelbart.

Det er bare min personlige mening.

/Lasse
Avatar billede brian0905 Nybegynder
29. april 2008 - 16:01 #6
Jeg skal i forvejen have en Host/server til anden funktionalitet. Den skal naturligvis også kunne logge på, dvs den skal også kende til klienter. Det simple scenarie er at 10 klienter skal kunne chatte med den person der agerer host, og den person skal kunne chatte igen. Hvis alligevel klienterne skal melde sig på serveren/logge sig ind, så kan sikkerheden også sagtens være implementeret der, eller hvad? Dvs. acceptere Single point of failure da der ikke vil være nogen "chat" uden at serveren kan acceptere klienter. Ved din metode risikerer jeg så ikke at få den samme logik omkring login på både klient og server, dvs dublikeret logik? (ved godt at man så ville flytte det ud i separat service og så distribuere det)
Avatar billede sovsekoder Nybegynder
30. april 2008 - 20:28 #7
bruger du database til noget andet? hvormange brugere skal registreres i systemet (worst case)? Hvis du bare har 10-20 brugere og du ikke gemmer noget andet i databasen (har du måske planer om at loggen skal ned i databasen!?). Så vil jeg bare lave en flad fil, der loades når serveren startes, så installationen bliver så simpel som muligt.

Hvis du har mulighed for det, ville det være meget fint med AD-styring af adgangen - som det nævnes. F.eks. med en AD-gruppe: "ChatApp", hvor alle der er med i gruppen får lov til at hooke sig op på serveren (dvs. får adgang til chat-applikationen). Så skal klienten blot overføre de credentials som er gældende på klienten (den som er logget på computeren), og serveren kan validere op i mod ad-gruppen.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester