在Microsoft .NET Framework 中,ADSI是獨立在一個命名空間 System.DirectoryService,預設是沒被加入參考
它提供二個類別 一個是DirectoryEntry,另一個是 DirectorySearcher , 二個適用範圍不同
DirectoryEntry用來存取物件資料
DirectorySearcher 負責AD的搜尋
如果你要用System.DirectoryService存取AD,要準備三件事
一、將System.DirectoryService.dll加入參考
二、準備好可登入網域 且有可存取指定資源權限的使用考帳號碼含名稱跟密碼
三、 將想要查詢的物件階層,組合成LDAP查詢字串 (LDAP查詢字串是存取Active Directory物件的核心,每一個在AD中的物件,
都會有一個固定的唯一名稱,這個名稱叫做Distinguished Names(DN), DirectoryEntry會依LDAP所給的DN來搜尋AD,若LDAP指示的DN
找不到資料,就會傳回伺服器中無此物件的訊息。
LDAP 查詢字串的結構為
LDAP://[distinguished name]
LDAP://cn=[common name], ou=[Organization Unit Name], dc =[Doma
例如,要查詢 Acme.com的DC中的Administrator使用者時,若只有單一層的Domain 那LDAP的字串會簡單多
LDAP://cn=Administrator,cn=Users, dc=acme,dc=com
如何用AD做使用者驗證?
首先 先要由表單取得使用者輸入的名稱與密碼
並把它綁到DirectoryEntry物 件中
若要在驗證時進一步取到使用者的資訊 像uid或 sid
那可和DirectorySearcher 做整合然後啟動搜尋
若找不到使用者的物件 則可傳回錯誤
可用SearchResult.GetDirectoryEntry()來取得使用者的AD物件
DirectorySearcher searcher = new DirectorySearcher ( new DirectoryEntry("LDAP://dc=jcistudio.idv.tw",userName,password)); //設定符合使用者名稱的使用者
searcher.Filler = "(&&objectClass=User)(sAMAccountName=" + userName + "))"; //搜尋使用者
SearchResult result = searcher.Findone();
if( result == null)
Response.Write("User is not exist.") ; //錯誤訊息
2008年4月10日 星期四
2008年4月9日 星期三
XCOPY AutoBackUp
XCOPY 來源資料夾 目的資料夾 /S /D /Y
/S 複製每個目錄及其包含的子目錄。
/D 複製發生變更的檔案。
/Y 所有覆蓋的詢問都回答 YES
EX:
XCOPY "C:\MyDoc" "E:\BackUpFolder" /S /D /Y
=============================================
註解 = rem
EX:
rem Start BackUp Function...
============================================
設定變數 = set
EX:
set A=B
變數 A 的值是 B
使用變數 %變數%
EX:
%A%
============================================
@echo off
cls
echo Start Test Function...
rem 宣告一個變數A等於EE
set A=EE
rem 顯示變數A
echo %A%
rem 宣告一個變數B等於今天日期
set B=%date%
rem 顯示變數B
echo %B%
set year=%date:~0,4%
echo %year%
echo 1234567890
echo ABCDEFGHIJ
set s=ABCDEFGHIJ
echo %s:~0,2%
echo %s:~0,2%
echo %s:~4,4%
echo %s:~4,-4%
echo %s:~,-4%
echo %s:~,-4%
echo %s:~-4%
pause
cls
/S 複製每個目錄及其包含的子目錄。
/D 複製發生變更的檔案。
/Y 所有覆蓋的詢問都回答 YES
EX:
XCOPY "C:\MyDoc" "E:\BackUpFolder" /S /D /Y
=============================================
註解 = rem
EX:
rem Start BackUp Function...
============================================
設定變數 = set
EX:
set A=B
變數 A 的值是 B
使用變數 %變數%
EX:
%A%
============================================
@echo off
cls
echo Start Test Function...
rem 宣告一個變數A等於EE
set A=EE
rem 顯示變數A
echo %A%
rem 宣告一個變數B等於今天日期
set B=%date%
rem 顯示變數B
echo %B%
set year=%date:~0,4%
echo %year%
echo 1234567890
echo ABCDEFGHIJ
set s=ABCDEFGHIJ
echo %s:~0,2%
echo %s:~0,2%
echo %s:~4,4%
echo %s:~4,-4%
echo %s:~,-4%
echo %s:~,-4%
echo %s:~-4%
pause
cls
2008年4月7日 星期一
C#.net常用函數和方法集匯總
C#.net常用函數和方法集匯總
1、DateTime 數位型
System.DateTime currentTime=new System.DateTime();
1.1 取當前年月日時分秒
currentTime=System.DateTime.Now;
1.2 取當前年
int 年=currentTime.Year;
1.3 取當前月
int 月=currentTime.Month;
1.4 取當前日
int 日=currentTime.Day;
1.5 取當前時
int 時=currentTime.Hour;
1.6 取當前分
int 分=currentTime.Minute;
1.7 取當前秒
int 秒=currentTime.Second;
1.8 取當前毫秒
int 毫秒=currentTime.Millisecond;
(變數可用中文)
1.9 取中文日期顯示——年月日時分
string strY=currentTime.ToString("f"); //不顯示秒
1.10 取中文日期顯示_年月
string strYM=currentTime.ToString("y");
1.11 取中文日期顯示_月日
string strMD=currentTime.ToString("m");
1.12 取中文年月日
string strYMD=currentTime.ToString("D");
1.13 取當前時分,格式為:14:24
string strT=currentTime.ToString("t");
1.14 取當前時間,格式為:2003-09-23T14:46:48
string strT=currentTime.ToString("s");
1.15 取當前時間,格式為:2003-09-23 14:48:30Z
string strT=currentTime.ToString("u");
1.16 取當前時間,格式為:2003-09-23 14:48
string strT=currentTime.ToString("g");
1.17 取當前時間,格式為:Tue, 23 Sep 2003 14:52:40 GMT
string strT=currentTime.ToString("r");
1.18獲得當前時間 n 天後的日期時間
DateTime newDay = DateTime.Now.AddDays(100);
2、Int32.Parse(變數) Int32.Parse("常量")
字元型轉換 轉為32位數位型
3、 變數.ToString()
字元型轉換 轉為字元串
12345.ToString("n"); //產生 12,345.00
12345.ToString("C"); //產生 ¥12,345.00
12345.ToString("e"); //產生 1.234500e+004
12345.ToString("f4"); //產生 12345.0000
12345.ToString("x"); //產生 3039 (16進制)
12345.ToString("p"); //產生 1,234,500.00%
4、變數.Length 數位型
取字串長度:
如: string str="中國";
int Len = str.Length ; //Len是自訂變數, str是求測的字串的變數名
5、System.Text.Encoding.Default.GetBytes(變數)
字碼轉換 轉為比特碼
如:byte[] bytStr = System.Text.Encoding.Default.GetBytes(str);
然後可得到比特長度:
len = bytStr.Length;
6、System.Text.StringBuilder("")
字元串相加,(+號是不是也一樣?)
如:System.Text.StringBuilder sb = new System.Text.StringBuilder("");
sb.Append("中華");
sb.Append("人民");
sb.Append("共和國");
7、變數.Substring(參數1,參數2);
截取字串的一部分,參數1為左起始位數,參數2為截取幾位。
如:string s1 = str.Substring(0,2);
8、String user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();
取遠端用戶IP位址
9、穿過代理伺服器取遠端用戶真實IP位址:
if(Request.ServerVariables["HTTP_VIA"]!=null){
string user_IP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}else{
string user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();
}
10、 Session["變數"];
存取Session值;
如,賦值: Session["username"]="小布什";
取值: Object objName=Session["username"];
String strName=objName.ToString();
清空: Session.RemoveAll();
11、String str=Request.QueryString["變數"];
用超連接傳送變數。
如在任一頁中建超連接:點擊
在Edit.aspx頁中取值:String str=Request.QueryString["fdid"];
12、DOC對像.CreateElement("新增節點名");
新增XML我的文件新節點
13、父節點.AppendChild(子節點);
將新增的子節點加到XML我的文件父節點下
14、 父節點.RemoveChild(節點);
移除節點
15、Response
Response.Write("字串");
Response.Write(變數);
向頁面輸出。
Response.Redirect("URL位址");
跳轉到URL指定的頁面
16、char.IsWhiteSpce(字串變數,位數)——邏輯型
查指定位置是否空字元;
如:
string str="中國 人民";
Response.Write(char.IsWhiteSpace(str,2)); //結果為:True, 第一個字元是0位,2是第三個字元。
17、char.IsPunctuation('字元') --邏輯型
查字元是否是標點符號
如:Response.Write(char.IsPunctuation('A')); //返回:False
18、(int)'字元'
把字元轉為數位,查程式碼點,注意是單引號。
如:
Response.Write((int)'中'); //結果為中字的程式碼:20013
19、(char)程式碼
把數位轉為字元,查程式碼代表的字元。
如:
Response.Write((char)22269); //返回「國」字。
20、 Trim()
清除字串前後空格
21 、字串變數.Replace("子字串","取代為")
字串取代
如:
string str="中國";
str=str.Replace("國","央"); //將國字換為央字
Response.Write(str); //輸出結果為「中央」
再如:(這個非常實用)
string str="這是
1、DateTime 數位型
System.DateTime currentTime=new System.DateTime();
1.1 取當前年月日時分秒
currentTime=System.DateTime.Now;
1.2 取當前年
int 年=currentTime.Year;
1.3 取當前月
int 月=currentTime.Month;
1.4 取當前日
int 日=currentTime.Day;
1.5 取當前時
int 時=currentTime.Hour;
1.6 取當前分
int 分=currentTime.Minute;
1.7 取當前秒
int 秒=currentTime.Second;
1.8 取當前毫秒
int 毫秒=currentTime.Millisecond;
(變數可用中文)
1.9 取中文日期顯示——年月日時分
string strY=currentTime.ToString("f"); //不顯示秒
1.10 取中文日期顯示_年月
string strYM=currentTime.ToString("y");
1.11 取中文日期顯示_月日
string strMD=currentTime.ToString("m");
1.12 取中文年月日
string strYMD=currentTime.ToString("D");
1.13 取當前時分,格式為:14:24
string strT=currentTime.ToString("t");
1.14 取當前時間,格式為:2003-09-23T14:46:48
string strT=currentTime.ToString("s");
1.15 取當前時間,格式為:2003-09-23 14:48:30Z
string strT=currentTime.ToString("u");
1.16 取當前時間,格式為:2003-09-23 14:48
string strT=currentTime.ToString("g");
1.17 取當前時間,格式為:Tue, 23 Sep 2003 14:52:40 GMT
string strT=currentTime.ToString("r");
1.18獲得當前時間 n 天後的日期時間
DateTime newDay = DateTime.Now.AddDays(100);
2、Int32.Parse(變數) Int32.Parse("常量")
字元型轉換 轉為32位數位型
3、 變數.ToString()
字元型轉換 轉為字元串
12345.ToString("n"); //產生 12,345.00
12345.ToString("C"); //產生 ¥12,345.00
12345.ToString("e"); //產生 1.234500e+004
12345.ToString("f4"); //產生 12345.0000
12345.ToString("x"); //產生 3039 (16進制)
12345.ToString("p"); //產生 1,234,500.00%
4、變數.Length 數位型
取字串長度:
如: string str="中國";
int Len = str.Length ; //Len是自訂變數, str是求測的字串的變數名
5、System.Text.Encoding.Default.GetBytes(變數)
字碼轉換 轉為比特碼
如:byte[] bytStr = System.Text.Encoding.Default.GetBytes(str);
然後可得到比特長度:
len = bytStr.Length;
6、System.Text.StringBuilder("")
字元串相加,(+號是不是也一樣?)
如:System.Text.StringBuilder sb = new System.Text.StringBuilder("");
sb.Append("中華");
sb.Append("人民");
sb.Append("共和國");
7、變數.Substring(參數1,參數2);
截取字串的一部分,參數1為左起始位數,參數2為截取幾位。
如:string s1 = str.Substring(0,2);
8、String user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();
取遠端用戶IP位址
9、穿過代理伺服器取遠端用戶真實IP位址:
if(Request.ServerVariables["HTTP_VIA"]!=null){
string user_IP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}else{
string user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();
}
10、 Session["變數"];
存取Session值;
如,賦值: Session["username"]="小布什";
取值: Object objName=Session["username"];
String strName=objName.ToString();
清空: Session.RemoveAll();
11、String str=Request.QueryString["變數"];
用超連接傳送變數。
如在任一頁中建超連接:點擊
在Edit.aspx頁中取值:String str=Request.QueryString["fdid"];
12、DOC對像.CreateElement("新增節點名");
新增XML我的文件新節點
13、父節點.AppendChild(子節點);
將新增的子節點加到XML我的文件父節點下
14、 父節點.RemoveChild(節點);
移除節點
15、Response
Response.Write("字串");
Response.Write(變數);
向頁面輸出。
Response.Redirect("URL位址");
跳轉到URL指定的頁面
16、char.IsWhiteSpce(字串變數,位數)——邏輯型
查指定位置是否空字元;
如:
string str="中國 人民";
Response.Write(char.IsWhiteSpace(str,2)); //結果為:True, 第一個字元是0位,2是第三個字元。
17、char.IsPunctuation('字元') --邏輯型
查字元是否是標點符號
如:Response.Write(char.IsPunctuation('A')); //返回:False
18、(int)'字元'
把字元轉為數位,查程式碼點,注意是單引號。
如:
Response.Write((int)'中'); //結果為中字的程式碼:20013
19、(char)程式碼
把數位轉為字元,查程式碼代表的字元。
如:
Response.Write((char)22269); //返回「國」字。
20、 Trim()
清除字串前後空格
21 、字串變數.Replace("子字串","取代為")
字串取代
如:
string str="中國";
str=str.Replace("國","央"); //將國字換為央字
Response.Write(str); //輸出結果為「中央」
再如:(這個非常實用)
string str="這是
訂閱:
文章 (Atom)