Jag har letat och läst mängdvis med guider angående hur man loggar in på AD via Asp.Net. Dock har jag inte hittat det jag är ute efter.Använda windows/ad inloggning
Jag vill:
1. Så fort man kommer till sidan så ska man loggas in med det användarnamn man loggat in med i windows/ad. Man ska inte behöva skriva in användarnamn eller lösenord själv. Nu ploppar en inloggingsruta upp när man besöker siten.
2. Användarnamnet ska kontrolleras mot AD:ets grupper och kolla så den är behörig till att se sidan.
Jag har just nu några problem. Dels kommer jag inte åt AD:et från min utvecklingsdator, men lägger jag siten på AD-servern så fungerar det.
Inställningar jag gjort:
IIS:
* Bockat ur anonym access till sidan
* Använder windows auth.
web.config:
<code>
<authentication mode="Windows"/>
<authorization>
<allow users ="*" />
</authorization>
</code>
Koden:
<code>
private void AD()
{
Response.Write(LogonValid(ExtractUserName()));
}
private string ExtractUserName()
{
string [] userPath = Request.ServerVariables["Logon_user"].Split(new char [] {'\\'});
return userPath[userPath.Length-1];
}
public bool LogonValid(string name)
{
string userName = "Administrator";
string password = "********";
DirectoryEntry de = new DirectoryEntry(null, ADServer +"\\" + userName, password);
try
{
object o = de.NativeObject;
DirectorySearcher ds = new DirectorySearcher(de);
ds.Filter = "samaccountname="+ name;
ds.PropertiesToLoad.Add("cn");
SearchResult sr = ds.FindOne();
if(sr == null) throw new Exception();
return true;
}
catch (Exception e)
{
return false;
}
}
</code>
Någon som har några idéer/kodexempel/guider att komma med?