NT Authentication Function in VB.NET


Private Function Authenticated() As Boolean 
        Dim queryCollection As ManagementObjectCollection 
        Dim co As New ConnectionOptions() 
        co.Username = UserName 'user name from user 
        co.Password = Password 'string password entered by user 

        Dim path As New System.Management.ManagementPath() 

        path.Server = ConnectionServer 'server to use for authentication 
        path.Path = "\\" & ConnectionServer & "\root\cimv2" 


        Dim ms As New System.Management.ManagementScope(path, co) 
        Dim oq As New System.Management.ObjectQuery("SELECT * FROM Win32_OperatingSystem") 'dummy query to test rights 
        Dim query As New ManagementObjectSearcher(ms, oq) 

        Try 
            queryCollection = query.Get() 
        Catch ex1 As System.UnauthorizedAccessException 
            Return False 'ouch nt authentication failed 
        Catch ex As Exception 
            MsgBox("Error: NT Verification Failed", MsgBoxStyle.Critical, "Error Connecting to Server For Authentication") 
            Application.Exit() 
        End Try 

        Return True 
    End Function 

Here is another way:


Public Shared Function ConnectToRegisTry(ByVal servername As String) As String 
 
Dim regKeyToGet As String,keyToRead As String
 
Dim oConn As ConnectionOptions =  New ConnectionOptions() 
oConn.Username = "admin" 
oConn.Password = "pass" 
Dim scope As ManagementScope =  New ManagementScope("//" + servername + "/root/default",oConn) 
regisTry = New ManagementClass(scope, New ManagementPath("StdRegProv"), Nothing) 
 
' Returns a specific value for a specified key 
Dim inParams As ManagementBaseObject =  regisTry.GetMethodParameters("GetStringValue") 
inParams("sSubKeyName") = regKeyToGet 
inParams("sValueName") = keyToRead 
Dim outParams As ManagementBaseObject =  regisTry.InvokeMethod("GetStringValue",inParams,Nothing) 
 
Return outParams("sValue").ToString()
 
End Function