Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C# ASP.net] AD uitlezen - lokaal wel, remote niet

Pagina: 1
Acties:

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
Ik heb nu de volgende code die wat gegevens van de user ophaalt uit de AD:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
        try
        {
            // Get information from AD
            DirectorySearcher ds = new DirectorySearcher();
            //ds.SearchRoot = new DirectoryEntry("LDAP://DC=**ONSDOMEIN**"); // onze dc
            //ds.SearchRoot = new DirectoryEntry("LDAP://RootDSE");

            //ds.Filter = String.Format("(&(objectCategory=user)(SAMAccountName={0}))", ExtractUserName(HttpContext.Current.User.Identity.Name));
            // ds.Filter = "(objectCategory=user)";
            string userName = ExtractUserName(HttpContext.Current.User.Identity.Name);
            ds.Filter = String.Format("(SAMAccountName={0})", userName);

            // this will get names of only those properties to which a value is set
            // ds.PropertyNamesOnly = true;

            ds.PropertiesToLoad.Add("givenName");
            ds.PropertiesToLoad.Add("CN");
            ds.PropertiesToLoad.Add("name");
            ds.PropertiesToLoad.Add("mail");

            SearchResult result = ds.FindOne();
            if (result != null)
            {
                HttpContext.Current.Session["UserName"] = result.GetDirectoryEntry().Name.Substring(3);
                HttpContext.Current.Session["UserEmail"] = result.Properties["mail"][0].ToString(); ;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }


Lokaal werkt hij perfect tijdens het bouwen, onze testserver staat in een DMZ dus daar kan ik het niet goed testen, en bij de klant zit de server weer wel in het domein en werkt het niet. Daar heb ik daarom ook de catch gecastreerd en zitten ze alleen tegen een leeg blokje met user gegevens aan te kijken, waardoor ze iig de rest kunnen testen.

Ik heb de anonymous access op IIS niveau ge-enabled met een AD user, en de site werkt nog steeds. Kortom, hij draait nu wel onder een (normale) AD user, maar alsnog haalt hij de gegevens niet op van de bezoekende users.

Ik ga nog eens met een nette catch de code er op zetten, dat ik de foutmelding kan zien zonder dat ik het testen verstoor, die plak ik er zo ook nog even in.

iOS developer


  • whoami
  • Registratie: December 2000
  • Laatst online: 13:42
Wat is niet werken ? Krijg je een security-exception ?

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 13:42
Ik denk dat je last hebt van het double hop probleem, en dat kan volgens mij opgelost worden door Kerberos goed te implementeren/configureren.
klik

https://fgheysels.github.io/


  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
code:
1
2
3
The (SAMAccountName=) search filter is invalid.   at System.DirectoryServices.SearchResultCollection.ResultsEnumerator.MoveNext()
   at System.DirectoryServices.DirectorySearcher.FindOne()
   at State.GetADUserInfo()


Dit komt er uit rollen. Kortom, die userName wordt nooit gevuld.

iOS developer


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:28

TeeDee

CQB 241

Bekijk "HttpContext.Current.User.Identity.Name" eens met een debugger?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
TeeDee schreef op vrijdag 28 maart 2008 @ 10:01:
Bekijk "HttpContext.Current.User.Identity.Name" eens met een debugger?
Ik kan niet debuggen daar.....

Maar vermoed jij dat die Name wel gevuld is maar niet accessible is door het double hop probleem?

---------

Wat eigenlijk het basisprobleem is is dat we alleen ingelogde AD users willen hebben, daar de naam en het emailadres van willen hebben, en in een toekomstig stadium willen kijken bij welke group ze horen en daar rechten aan toekennen.

[ Voor 28% gewijzigd door BikkelZ op 28-03-2008 10:04 ]

iOS developer


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:28

TeeDee

CQB 241

BikkelZ schreef op vrijdag 28 maart 2008 @ 10:03:
[...]
Ik kan niet debuggen daar.....
Ah, duidelijk ;) Dan kan je altijd nog een klein loggertje bouwen en dat uitspuugt op het scherm...
Maar vermoed jij dat die Name wel gevuld is maar niet accessible is door het double hop probleem?
Ik vermoed nog niks, maar het lijkt mij wel de meest logische verklaring voor het probleem :)

Heart..pumps blood.Has nothing to do with emotion! Bored


  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
Kan ik niet de applicatie laten draaien onder de user van de bezoeker? Hij draait nu al onder mijn tijdelijke standaard login account, dus dat lijkt me geen probleem. Als ik anonymous access uit zet dan kan ik met integrated windows authentication toch mensen toelaten? Maar hoe kom ik dan van dat username / password scherm af?

iOS developer


  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
Gefixt.

Oplossing:

- Anonymous access uit gezet
- Integrated windows auth aan

De rest uit.

Dat werkte alleen niet. Waarom? Ik had een administrator account wat eigenlijk te los stond van de rest van de medewerkers. Ik heb het laten testen door een medewerker en alles wordt netjes uitgelezen.

Bedankt het meedenken :)

iOS developer

Pagina: 1