實現域登入 介紹

2021-09-25 10:44:10 字數 1964 閱讀 7471

使用c#訪問 active directory域服務,需引用system.directoryservices命名空間,該命名空間包含兩個元件類,directoryentry和 directorysearcher。

directoryentry類可封裝 activedirectory域服務層次結構中的節點或物件,使用此類繫結到物件、讀取屬性和更新特性; 

使用directorysearcher類可對 active directory域服務層次結構執行查詢。 

如果僅要對ad的組織單元,群組和使用者進行查詢或者更改屬性,使用上述兩個類即可。

下面給出操作ad域的部分**:

directoryentry objde = new directoryentry(adname, loginname, loginpwd);

adname :是網域名稱,一般格式是:"ldap://****";****為域的名字(一般是大寫的英文本串)

loginname: 登入域的使用者名稱(儲存在域中的名字,一般是中文名字的拼音)

loginpwd: 使用者名稱對應的登入密碼

directoryentry objde = new directoryentry(adtxt, logintxt, loginpwdtxt); 

string strfilter = "(&(objectcategory=person)(objectclass=user))"; 

directorysearcher objsearcher = new directorysearcher(objde, strfilter); 

//排序 

objsearcher.sort = new sortoption("name", sortdirection.ascending); 

searchresultcollection src = objsearcher.findall();

src 中儲存了所有使用者的所有資訊

如果想查詢域中所有的組織單元,可以把篩選字串改為: 

string strfilter = "(&(objectcategory=organizationalunit)(objectclass=organizationalunit))";

如果想查詢域中所有的群組,可以把篩選字串改為: 

string strfilter = "(&(objectcategory=group)(objectclass=group))";

//獲取域使用者屬性 

directoryentry objde = new directoryentry(adtxt, logintxt, loginpwdtxt); 

string strfilter = "(&(objectcategory=person)(objectclass=user))"; 

directorysearcher objsearcher = new directorysearcher(objde, strfilter); 

//排序 

objsearcher.sort = new sortoption("name", sortdirection.ascending); 

searchresultcollection src = objsearcher.findall() 

directoryentry entry = src[102].getdirectoryentry(); 

foreach (string pro in entry.properties.propertynames) 

或者:foreach (string strpropnamein src[102].properties.propertynames) 

foreach (searchresult sr in src) 

實現同域單點登入

利用瀏覽器cookies儲存當前登入使用者資訊,使得同域 能夠共享使用該cookies儲存的使用者資訊,取得當前登入使用者,實現單點登入。域 hello.com 儲存鍵名稱 sso.hello.com 儲存的值 userid sjdjajhsh 示例 cookie sso.hello.com use...

跨域 Cookie 實現單點登入

單點登入 sso single sign on 對於同乙個客戶端 例如 chrome 瀏覽器 只要登入了乙個子站 例如 a.com 則所有子站 b.com c.com 都認為已經登入。比如使用者在登入 後,跳轉到天貓時就已經登入了。未登入使用者訪問子站 a.com 進行登入,自動跳轉到賬戶中心的統一...

跨域實現統一登入

很多時候,如果沒有理解原理,做起事來會感覺無從下手 困難重重,一旦把原理想清楚了,做起來就會從容不迫。切入正題 在相同網域名稱下實現統一認證單點登入比較簡單,基於cookie結合共享redis就可以輕鬆實現。在同乙個網域名稱下,不同的系統共享相同的cookie,認證中心可以將會話id 伺服器的ses...