2016-05-30 54 views
0

也许这是一个愚蠢的问题,但我真的是新的这个领域.. 我正在使用AD在vb.net的身份验证。在做了一些搜索之后,我发现了很多与此相关的代码。例如:测试vb.net代码是否工作

Private m_ServerName As String 
Private m_LoginName As String 
Private m_Authenicate As String 
Public Sub New() 
' This call is required by the Windows Form Designer. 
InitializeComponent() 

' Add any initialization after the InitializeComponent() call. 
m_ServerName = DOMAIN_NAME ' Your Domain Name 
m_LoginName = Environment.UserName.ToString 
m_Authenicate = My.User.Name 
End Sub 

Public Function IsLogonValid() As Boolean 
Dim m_LoginName As String 
Dim dirEntry As System.DirectoryServices.DirectoryEntry 
Dim dirSearcher As System.DirectoryServices.DirectorySearcher 
lblStatus.Text = "Validating User Account" 

Try 
m_LoginName = Environment.UserName.ToString 'The logged in user ID 
dirEntry = New System.DirectoryServices.DirectoryEntry("LDAP://" & DOMAIN_NAME) 
dirSearcher = New System.DirectoryServices.DirectorySearcher(dirEntry) 
dirSearcher.Filter = "(samAccountName=" & m_LoginName & ")" 
     'Use the .FindOne() Method to stop as soon as a match is found 

Dim sr As SearchResult = dirSearcher.FindOne() 

If sr Is Nothing Then 'return false if user isn't found 
lblStatus.Text = "User authentication failed" 
Return False 
End If 
Dim de As System.DirectoryServices.DirectoryEntry = sr.GetDirectoryEntry() 
sUserName = de.Properties("GivenName").Value.ToString() 

lblStatus.Text = "User authentication success" 

Return True 'Valid user 

Catch ex As Exception ' return false if exception occurs 
lblStatus.Text = "User authentication failed" 

Return False 

End Try 

End Function 

如何知道代码是否工作?我必须制作登录表单吗?

+0

创建一个函数,该函数包含返回true或false(基于dirSearcher.FindOne())的最小逻辑(例如DirectoryService但不包含UI元素)和参数(Domain Name,User Name)。创建调用第一个函数的另一个函数(或单元测试)。第二个功能可以是一个控制台应用程序,例如 –

回答

0

只需创建一个带有文本框/标签= lblStatus的窗体并运行该功能。