網頁登入驗證使用AD(Active Directory)

整合AD(Active Directory),身分驗證好方便。

這是12月的第一篇文章,很久沒有寫新文章了,不外乎最近選舉實在太忙,另外還有公所內幾個專案,都等著我去做,還有幫老師做的專案也搞得焦頭爛額 ><",最近在修增所內的【報修系統】,加入了AD(Active Directory)驗證的機制,最大的好處就是提供正確的報修人名單,而不是只是隨便填一填就送出表單,而且也不用特別去維護使用者資料庫,使用者也不用另外記一組帳號密碼,這邊提供一個簡便的方法,讓大家在快速的時間內就可以將驗證機制完成,當然,其實AD能做的還有很多,之後慢慢地再來與大家分享。

 

1.在下載檔案中含有一個【System.DirectoryServices.dll】,這提供我們重要功能的檔案,在專案中加入參考這個檔案,系統會自動創造一個【Bin】的檔案夾,並且自動複製System.DirectoryServices.dll到Bin中,為了方便日後使用,記得要Imports唷。

image

 


	Imports System.DirectoryServices

 

2.在你想要的動作事件中,加入以下程式碼:


	Dim UserName As String = TextBox1.Text.ToString()
Dim PassWord As String = TextBox2.Text.ToString()
Dim ds As System.DirectoryServices.DirectoryEntry
ds = New System.DirectoryServices.DirectoryEntry("LDAP://10.60.254.3", UserName, PassWord)
Dim dirsearcher As DirectorySearcher
dirsearcher = New DirectorySearcher(ds)
dirsearcher.Filter = "(sAMAccountName=" + UserName + ")"
dirsearcher.PropertiesToLoad.Add("displayName")
dirsearcher.SearchScope = SearchScope.Subtree
Try
    Dim results As SearchResult = dirsearcher.FindOne
    If IsNothing(results) Then
    Else
        Label1.Text = results.GetDirectoryEntry().Properties("displayName").Value.ToString() + " " + "歡迎," + "驗證成功。"
    End If
Catch ex As Exception
    Label1.Text = "輸入的帳號或密碼錯誤。"
End Try

這樣就大功告成了。

其中:ds = New System.DirectoryServices.DirectoryEntry("LDAP://10.60.254.3", UserName, PassWord)

LDAP後面可以用網域名稱,UserName不一定要打【@....】,因為系統預設就會幫你加上去了

 

今天的文章就到這邊啦,雖然簡短,但是卻很實用喔,若是在小有規模的公司,將系統與AD整合,可以大大降低資訊人員的工作量喔!!!

 

PeterDotNetASPVB10120801.zip