---
title: "Inloggning mot AD"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/48573-inloggning-mot-ad"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Brimba"
published: "2002-07-24T07:14:19.000Z"
updated: "2002-07-26T13:42:09.000Z"
replies: 12
views: 503
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/48573-inloggning-mot-ad"
---

# Inloggning mot AD

## #1 — Brimba, 2002-07-24T07:14Z

Hej!

Hur kan ett enkelt exempel se ut för att hantera inloggning via AD?

Alltså om man exempelvis skriver ett användarnamn och lösenord i två inputboxar, så vill jag validera detta mot AD's databas och returnera om det är giltligt eller inte.

Permalänk: https://www.webforum.nu/p/48573

## #2 — ptype, 2002-07-24T07:36Z

AD?

Permalänk: https://www.webforum.nu/p/729369

## #3 — NETwork, 2002-07-24T07:59Z

AD = Active Directory

Du kan inte plocka ut lösenordet, däremot kan du få fram användarnamn (samaccountname) och alla andra fält från AD. Vi har precis byggt ett intranät med AD som grund för användarkonton, dock är det inte jag som har gjort kopplingarna mot AD. Jag återkommer när jag frågat de som VET. :)

Permalänk: https://www.webforum.nu/p/729376

## #4 — NETwork, 2002-07-24T08:10Z

Kan detta ge några ledtrådar kanske? Titta närmare på detta namespace:

using System.DirectoryServices;

```
private DirectoryEntry myDirEnt;

public string Fullname{
  get{
    try{
      return myDirEnt.Properties["displayName"][0].ToString();
    }
    catch{
      return "";
    }
  }
}
```

Permalänk: https://www.webforum.nu/p/729379

## #5 — Brimba, 2002-07-24T08:16Z

> **NETwork skrev:**
>
> Du kan inte plocka ut lösenordet

Det måste väl för bövelen gå att göra en applikation som sköter authentiering via AD?

Permalänk: https://www.webforum.nu/p/729382

## #6 — Grynet, 2002-07-24T08:21Z

Tja,

Skulle föreslå att du använder dig av windowsinloggning. Denna använder sig automatiskt av AD och poppar upp en inloggnings ruta.

Sen om du vill plocka ut datan ifrån AD, dvs namn och sådant får du använda dig av DirectorySearcher för att få ut en DirectoryEntry och sedan tilla på NETworks exemple.

Däremot att skapa en helt egen inloggnigsgrej tror jag kan bli svårt. DEt går ju inte att se lösenordet och kontrollera mot detta. Jag har ej heller funnit någon inloggnings funktion på AD objectet.

Permalänk: https://www.webforum.nu/p/729384

## #7 — Grynet, 2002-07-24T08:25Z

<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netdir/adsi/iadsuser.asp>

Permalänk: https://www.webforum.nu/p/729387

## #8 — Brimba, 2002-07-24T08:47Z

Ok, ponera att jag har använt mig av den inbyggda windowsinloggningsfunktionen, då vill jag bara veta hur jag får tag i den användare som för tillfället är inloggad :)

Permalänk: https://www.webforum.nu/p/729400

## #9 — Grynet, 2002-07-24T09:06Z

```
string samAccountName = "minAnvändaresInlogg";

DirectoryEntry myDirEnt = new DirectoryEntry(LDAP://DC=corp,DC=microsoft,DC=com); //pathen till root objectet i ADn
DirectorySearcher myDirSearch = new DirectorySearcher(myDirEnt, "(&(objectCategory=person)(objectClass=user(sAMAccountName="+ samAccountName +"))"); //leta efter vår användare
SearchResult myRes = myDirSearch.FindOne(); //hitta honom

myDirEnt = new DirectoryEntry(myRes.Path); //myDirEntry innehåller nu pathen till vår användare

string streetAddress = myDirEnt.Properties["streetAddress"][0].ToString(); //läser ut exempelvis gatuadressen
```

Något i den stilen skulle det kunna se ut.

Permalänk: https://www.webforum.nu/p/729416

## #10 — Brimba, 2002-07-24T09:15Z

Jo men hur hämtar jag användaren när man har loggat in via windowsinloggning?

```
'vill inte göra såhär!
string samAccountName = "minAnvändaresInlogg";

'såhär vill jag göra!
string samAccountName = ad.currentUser.ToString()
```

Permalänk: https://www.webforum.nu/p/729422

## #11 — Grynet, 2002-07-24T09:37Z

Ah, du menar så...

Kort sagt så får du ut användaren med User.Identity.Name, men sen måste du parsa ut SamAccountNamet.

tex:

```
try{
  int start = User.Identity.Name.IndexOf("\\")+1;
  int stop = User.Identity.Name.Length - start;
  if(User.Identity.Name.IndexOf("@") != -1){	//to ensure wierd loggons
    stop = User.Identity.Name.IndexOf("@") - start;
  }				}

  Session["thisPerson"] = new Person(User.Identity.Name.Substring(start, stop).Trim().ToLower(), true);
}
catch{}
```

Jag var lite lat och kopierade rakt ur vår kod. Vi var tvugna att göra en special test med @ för att se om användaren loggade in på sätter namn@domän istället för det mer vanliga domän\\namn. Sen stoppar vi in samAccountNamet i vår klass Person. (som hanterar allt som rör AD personen)

Permalänk: https://www.webforum.nu/p/729428

## #12 — Brimba, 2002-07-24T09:57Z

Strålande :)

Permalänk: https://www.webforum.nu/p/729450

## #13 — Grynet, 2002-07-26T13:42Z

Hmm, detta kanske kan funka om nu vill ha egen gjorda loggin text boxes etc.

// Create a new instance of NetworkCredential using the client
   // credentials.
   NetworkCredential credentials = new
      NetworkCredential("username","password","domain");

Permalänk: https://www.webforum.nu/p/730994

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/48573-inloggning-mot-ad
