tempo fà ho fatto qualcosa del genere in .net
probabilmente avevo preso spunto da quicodice:using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.DirectoryServices; namespace INR.PrevisioniBudget { /// <summary> /// Summary description for LeggiUtenti. /// </summary> public class LeggiUtenti : System.Web.UI.Page { protected System.Web.UI.WebControls.Label lblDati; private void GetUsers(string strFiltro) { ArrayList users = new ArrayList(); // percorso AD, username e password per interrogare string path = "LDAP://myDC.ORG/DC=myDC,DC=ORG"; string localUsername = "UtenteAutorizzato"; string localPassword = "PWDUtenteAutorizzato"; string strdistinguishedname = ""; string strname = ""; string struserprincipalname = ""; string strgivenname = ""; string strmemberof = ""; string strsamaccountname = ""; string strsn = ""; string strmail = ""; string strcn = ""; int x; // effettuo una ricerca in ActiveDirectory DirectorySearcher search = new DirectorySearcher(new DirectoryEntry(path, localUsername, localPassword)); search.Filter = "(&(objectclass=user)(objectCategory=person)" + strFiltro + ")"; // solo persone // proprietà richieste search.PropertiesToLoad.Add("distinguishedname"); search.PropertiesToLoad.Add("name"); search.PropertiesToLoad.Add("givenname"); search.PropertiesToLoad.Add("memberof"); search.PropertiesToLoad.Add("samaccountname"); search.PropertiesToLoad.Add("sn"); search.PropertiesToLoad.Add("mail"); search.PropertiesToLoad.Add("cn"); search.Sort.PropertyName="cn"; search.CacheResults = true; search.SizeLimit = 1000; // massimo 1000 utenti // cerco gli utenti SearchResultCollection results = search.FindAll(); //Response.Write(results.Count); foreach(SearchResult result in results) { // aggiugno lo username alla collezione strdistinguishedname=""; strname = ""; strgivenname = ""; strmemberof = ""; strsamaccountname = ""; strsn = ""; strmail = ""; strcn = ""; try { strdistinguishedname = result.Properties["distinguishedname"][0].ToString(); } catch { } try { strname = result.Properties["name"][0].ToString(); } catch { } try { strgivenname = result.Properties["givenname"][0].ToString(); } catch { } try { strmemberof = result.Properties["memberof"][0].ToString(); } catch { } try { strsamaccountname = result.Properties["samaccountname"][0].ToString(); } catch { } try { strsn = result.Properties["sn"][0].ToString(); } catch { } try { strmail = result.Properties["mail"][0].ToString(); } catch { } try { strcn = result.Properties["cn"][0].ToString(); } catch { } /* foreach(string propKey in result.Properties.PropertyNames) { Response.Write("" + propKey + "=" + result.Properties[propKey][0].ToString() + "-| "); //ResultPropertyValueCollection valcol = resEnt1.Properties[propKey]; } */ lblDati.Text = lblDati.Text + "<tr>"; lblDati.Text = lblDati.Text + "<td>" + strdistinguishedname + "</td>"; lblDati.Text = lblDati.Text + "<td>" + strname + "</td>"; lblDati.Text = lblDati.Text + "<td>" + strgivenname + "</td>"; lblDati.Text = lblDati.Text + "<td>" + strmemberof + "</td>"; lblDati.Text = lblDati.Text + "<td>" + strsamaccountname + "</td>"; lblDati.Text = lblDati.Text + "<td>" + strsn + "</td>"; lblDati.Text = lblDati.Text + "<td>" + strmail + "</td>"; lblDati.Text = lblDati.Text + "<td>" + strcn + "</td>"; lblDati.Text = lblDati.Text + "</tr>"; } search.Dispose(); } private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here int x; lblDati.Text = lblDati.Text + "<table border=1>"; lblDati.Text = lblDati.Text + "<tr>"; lblDati.Text = lblDati.Text + "<td>strdistinguishedname</td>"; lblDati.Text = lblDati.Text + "<td>strname</td>"; lblDati.Text = lblDati.Text + "<td>strgivenname</td>"; lblDati.Text = lblDati.Text + "<td>strmemberof</td>"; lblDati.Text = lblDati.Text + "<td>strsamaccountname</td>"; lblDati.Text = lblDati.Text + "<td>strsn</td>"; lblDati.Text = lblDati.Text + "<td>strmail</td>"; lblDati.Text = lblDati.Text + "<td>strcn</td>"; lblDati.Text = lblDati.Text + "</tr>"; GetUsers("(CN<=e)"); GetUsers("(CN>=e)(CN<=n)"); GetUsers("(CN>=n)(CN<=s)"); GetUsers("(CN>=s)"); lblDati.Text = lblDati.Text + "</table>"; } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent(); base.OnInit(e); } /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } }
http://www.aspitalia.com/script/705/...autenticazione

Rispondi quotando