Gruppetilhørighet

Vote:
 
Ved autentisering av brukeren ønsker jeg å hente ut gruppetilhøringhet. Dette gjør jeg vha. foreach (string group in ((PageBase)Page).CurrentUser.GroupList) { Response.Write(group + "
"); }
Problemet er at gruppene som listes ut ikke oppdateres ved endringer i AD, og ei heller ved synkroniseringsfunksjonen av grupper i admin grensesnittet. Jeg opprettet en del grupper i AD som brukeren er blitt medlem av men disse listes ikke ut. Hva kan jeg gjøre for å hente oppdatert informasjon fra AD? Oppsett: - Integrated Windows authetication i IIS - Windows authentication i web.config - All caching av brukerinformasjon er satt til 0. Jeg har også forsøkt med UnifiedPrincipal.ClearCache() og Sid.ClearCache(), men det ser ikke ut til å oppdatere informasjonen. Jeg har også forsøkt å sette opp med LDAP også og synkronisere grupper og tilhørighet, men informasjonen oppdateres fremdeles ikke automatisk. Må jeg gå direkte til AD vha. ADSI e.l. ?
#12116
Aug 23, 2004 13:30
Vote:
 
EPiServer opererer kun med de gruppene du har valgt å "importere" via synkroniseringsknappen i "Administer Groups" i admin. Det vil si at de gruppene du har tilgjengelig på en bruker er kun de gruppene som også finnes i EPiServer. For å få ut alle grupper fra ad (aka "memberOf"), så må du hente direkte fra AD. Om jeg forstår spørsmålet da :-)
#13673
Aug 23, 2004 13:50
Vote:
 
Enig at det var litt klønete formulert det spørsmålet.;) Det jeg ønsker, er å hente ut gruppene som pålogget bruker tilhører, også etter at endringer er gjort i AD. Hvis jeg forstår det rett, vil det si at jeg må aksessere AD direkte, da EPiServers api (SID og UnifiedPrincipal) går mot synkroniserte data i databasen og ikke direkte mot AD.
#13674
Aug 23, 2004 15:38
Vote:
 
EPiServer går direkte mot AD data, når man logger på. Men, listen over grupper man er medlem av gjennspeiler kun de gruppene man har lagt inn (synkronisert) i EPiServer. Man kan tolke det slik at EPiServer gir deg kun informasjon om grupper som er relevant for sikkerheten i EPiServer. Konklusjonen i forhold til ditt spørsmpål er den samme, men rent sikkerhetsmessig er det en viktig forskjell. Om du fjerner brukeren fra en gruppe i AD, og du bruker den gruppen i EPiServer, så får ikke brukeren tilgang til sider i EPiServer heller. Gruppene ligger i EPiServer, brukerens gruppetilhørighet derimot hentes fra AD ved pålogging. Men - altså - kun de gruppene som har betydning for EPiServer (de som er synket inn, og som kan brukes til å sette opp sikkerhet på sider.) Det er forskjellige grunner til at det er løst slik, en er ytelse. Rettigheter på sider lagres med SideId + SID (brukerid/gruppeid) + rettigheter (lese, endre osv.). Det letter oppslag, og minsker lagring. Ingen regel uten unntak. Om man gjør en IsInRole("rollenavn") så er det det underliggende Principal objektet som gjør sjekken, og her kan man få True for gruppetilhøriget som ikke gjennspeiles i gruppene som er synket inn i EPiServer. Det gjelder f.eks. om man bruker Windows pålogging, da vil man få True mot de lokale maskin-gruppene man er medlem av. Men, ikke AD altså.
#13675
Aug 23, 2004 17:57
Vote:
 
Har testet litt på dette nå er fremdeles litt usikker på funksjonaliteten. Det virker som om gruppeinformasjonen for brukeren ikke blir oppdatert hvis jeg klikker synkroniseringsknappen i admin grensesnitttet og deretter lagre for de gruppene som allerede ligger i EpiServer. De grupppene jeg ønsker å få listet ut vha. currentUser.GroupList lister fremdeles ikke ut gruppene selv om de er synkronisert med EPiServer. Er det noe jeg gjør galt eller har misforstått? Jeg benytter ikke LDAP funskjonalitet og har Windows Integrated i IIS og windows authentication i web.config (dvs. automatisk pålogging når man åpner siten)
#13676
Aug 24, 2004 9:20
Vote:
 
Ah, vi har snakket litt forbi hverandre. Jeg trodde du brukte LDAP mot AD (masse innstillinger i web.config.) Du har selvfølgelig rett, synkroniser grupper knappen gjelder ikke for LDAP, det er de lokale gruppene på maskinen du ser der. Om du bruker LDAP får du en ny knapp, der du kan søke i LDAP, og hente inn grupper i AD. Det er disse jeg har skrevet om. For at disse gruppene skal komme med, så må du legge domene brukeren inn i den lokale gruppen. Jeg er usikker på om det funker, men prøv. Du kan også lage dine egne grupper manuelt (dvs. ikke synkroniser), som har syntax: "DOMAIN\Group", med backslash og det hele. Når det er en windows bruker som er medlem av et domene, så vil gruppetilhørigheten være et array av lokale maskin grupper, og domenegrupper.
#13677
Aug 24, 2004 18:45
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.