Gå til innhold

Brukere med forskjellige rettigheter i "win form"-program


Anbefalte innlegg

Hei

 

I programmet skal det sjekkes mot en database når brukeren logger inn hvilken gruppe han er medlem i. Avhengig av dette får han forskjellig tilgang i programmet.

 

Er det noen innebygd funksjon i .net for å sette rettighetsnivåer på f. eks knapper i en winform? Slik at jeg kan sette at en knapp skal ha nivå 2 og kun grupper med tilgang på det nivået får enablet knappen?

Endret av graastein
Lenke til kommentar
Videoannonse
Annonse
Hei

 

I programmet skal det sjekkes mot en database når brukeren logger inn hvilken gruppe han er medlem i. Avhengig av dette får han forskjellig tilgang i programmet.

 

Er det noen innebygd funksjon i .net for å sette rettighetsnivåer på f. eks knapper i en winform? Slik at jeg kan sette at en knapp skal ha nivå 2 og kun grupper med tilgang på det nivået får enablet knappen?

Heisan

Jeg er "snart" i samme situasjon fordi vi har i vårt system samme rettighetsproblematikk der en bruker kan ha tilgang til ting andre brukere ikke har. F.eks. muligheten til å endre på rabatt felter på en faktura. Og jeg har i min uvitenhet tenkt å gjøre noe slik;

foreach(Control c in Controls)
 ThisSecurity.SetRights(c)

der ThisSecurity er et objekt av en klasse jeg selv har laget, som håndterer brukeren og gruppene han/hun er medlem av.

Dette kompilerer med ca 1% sansynlighet fordi jeg bare har dette sånn sirka i tankene, men prinsippet vil være noe slikt.

Lenke til kommentar

btAdminNoe.Visible = btAdminNoeAnnet.Visible = etc = Thread.CurrentPrincipal.IsInRole("EnWindowsGruppe");

 

og:

 

[PrincipalPermissionAttribute(SecurityAction.Demand, Role="EnWindowsGruppe")]
internal void EnFunksjon()
{
 // etc...
}

Endret av jorn79
Lenke til kommentar

Det du kan gjøre er jo å ha for deg en liste over knapper som skal være tilgjengelige ved de forskjellige nivåene.

Hvordan du holder denne listen er jo opp til deg. Men det som er best er att denne listen ikke ligger som .txt fil eller annet ettersom da kan brukeren bare endre filen slik at han hun får tilgang til alt.

 

Henter først nivået brukeren er ifra databasen, dette bør ikke lagres i en variabel, men hentes ut for hver gang for å sikre att ingen som driver reversed engineer kan reversere og bare sette nivået selv.

 

Så kjører du noen løkker:

input eksempel

[navn på objekt as string], [nivå som integer]

 

slett,10

rediger,5

ny,5

 

 

så kjører vi en loop igjennom dette..

Dim linjer As String() = Split(input, vbnewline)

for each x as string in linjer()

Dim pars As String() = Split(x, ",")

Dim name as String = pars(0)

Dim lvl as Integer = Val(pars(1))

if lvl > [innloggetnivå] then _

Form1.Controls(name).Visible = True

next x

 

 

 

Håper dette hjalp deg litt på vei.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...