如何让VB.NET Active Directory登录窗体将经过身份验证的事件引发回主窗体



我有一个小型VB.NET应用程序,目前有两种形式;第一种是用户可以选择要单击的按钮的主要形式。我有第二个表单,它处理针对Active Directory的身份验证。当用户单击登录表单上的"确定"时,名为"Authenticated"的公共属性将设置为"True"。我想要的是,但我真的很难理解;在主窗体上,当用户单击其中一个按钮时,它将检查"Authenticated"属性的值,如果它为false,则启动登录窗体。这一点很好,但我不确定如何让主窗体等待用户输入凭据并单击"OK",然后能够在对按钮执行操作之前重新检查"Authenticated'"状态。

这个主题之前在这篇文章中已经大致涵盖了——在vb.net 中的主表单之前显示登录表单

最后一条评论来自Beth的一个人,他提到能够通过它的声音来实现我试图通过从登录表单中引发事件来实现的目标……我想知道是否有人能给我更多关于我如何实现这一目标的细节?

非常感谢您抽出时间。

James

这应该是相当直接的。

在启动表单中添加一个Authenticated属性,并将其默认为False

表单加载时显示身份验证表单:

Public Class frmMain
    Friend Property Authenticated As Boolean = False
    Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        If Not _authenticated Then frmAuthenticate.ShowDialog()
        If _authenticated Then
            MessageBox.Show("You have been authenticated")
        Else
            MessageBox.Show("You have not authenticated")
            Me.Close()
        End If
    End Sub
End Class

然后在您的身份验证表单中,如果身份验证有效,则仅将main forms Authenticated属性设置为true:

Public Class frmAuthenticate
    Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
        If AuthenticatedOK() Then frmMain.Authenticated = True
        Me.Close()
    End Sub
    Private Function AuthenticatedOK() As Boolean
        Return False 'do your auth logic here
    End Function
    Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
        Me.Close()
    End Sub
End Class

最新更新