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 test1
{
/// <summary>
/// WebForm2 的摘要说明。
/// </summary>
public class WebForm2 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.TextBox TextBox2;
protected System.Web.UI.WebControls.TextBox TextBox3;
protected System.Web.UI.WebControls.Button Button1;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Button1_Click(object sender, System.EventArgs e)
{
this.Response.Write(IsAuthenticated(this.TextBox1.Text.ToString(),this.TextBox2.Text.ToString(),this.TextBox3.Text.ToString()));
}
public bool IsAuthenticated(string domain, string username, string pwd)
{
string domainAndUsername = domain + @"/" + username;
//DirectoryEntry entry = new DirectoryEntry( _path,domainAndUsername, pwd);
//DirectoryEntry entry = new DirectoryEntry( "WinNT://",domainAndUsername, pwd);
DirectoryEntry entry = new DirectoryEntry( "LDAP://rl.com",domainAndUsername, pwd);
//DirectoryEntry entry = new DirectoryEntry( "LDAP://rl.com/CN=xuhu,CN=Users,DC=rl,DC=com");
//DirectoryEntry entry = new DirectoryEntry( "WinNT://web/administrator","user");
//entry.Invoke("123","a1b2c3d4_");
//entry.CommitChanges();
//LDAP://rl.com/CN=xuhu,CN=Users,DC=rl,DC=com
// to-do: 需要解决密码策略问题
// entry.Invoke("ChangePassword", new Object[]{"a1b2c3d4_", "a1b2c3d_4"});
// entry.CommitChanges();
// 绑定到本机 AdsObject 以强制身份验证。
Object obj = entry.NativeObject;
DirectorySearcher search = new DirectorySearcher(entry);
search.Filter = "(SAMAccountName=" + username + ")";
search.PropertiesToLoad.Add("cn");
SearchResult result = search.FindOne();
// DirectoryEntry de = new DirectoryEntry(result.Path);
// //de.Invoke("ChangePassword", new Object[]{"a1b2c3d4_", "IN4NPQ0UMO2I"});
// de.Invoke("ChangePassword", new Object[]{"a1b2c3d4_", "a1b2c3d4_"});
// de.CommitChanges();
//
//entry.Invoke("a1b2c3d4_","a1b2c3d5_");
//entry.CommitChanges();
if(null == result)
{
return false;
}
// 更新目录中的用户的新路径
//_path = result.Path;
//_filterAttribute = (String)result.Properties["cn"][0];
//this.Response.Write()
this.Response.Write(result.Path+" ");
this.Response.Write("<br>");
this.Response.Write((String)result.Properties["cn"][0]);
this.Response.Write("<br>");
return true;
}
}
}