vb.net - 根据 AD 用户结果显示/隐藏用于电子邮件输入的文本框
问题描述
我仍然是一个 VB Noob,我在让它正常工作时遇到了一些麻烦。代码看起来应该可以工作,但我显然遗漏了一些东西......
我要做的是DirectoryServices
在表单加载时获取用户的电子邮件地址,如果没有可用的 AD 用户电子邮件,则显示(取消隐藏)一个文本框以允许用户输入他们的电子邮件地址。我所拥有的将从 AD 中提取用户电子邮件,但如果 Directy 服务不可用,则不会显示文本框。我已经尝试移动UserEmailAdd.Visible = False
到lblEmail.Visible = False
表单加载并将值设置为 True,但我运气不佳
这是我到目前为止所拥有的:
Private Sub FormTicket_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.CenterToScreen()
BtnSCR.Hide()
LblScreenshot.Hide()
'Get current users email address from AD or input
Dim currentADUser As System.DirectoryServices.AccountManagement.UserPrincipal
currentADUser = System.DirectoryServices.AccountManagement.UserPrincipal.Current
Dim userEmail = currentADUser.EmailAddress
If currentADUser IsNot Nothing Then
' user exists
LblEmail.Visible = False
UserEmailAdd.Visible = False
txtSummary.Focus()
MailUser = userEmail
'Catch ex As Exception
Else
' user does *not* exist
UserEmailAdd.Visible = True
LblEmail.Visible = True
UserEmailAdd.Focus()
MailUser = UserEmailAdd.Text
'End Try
End If
解决方案
因此,经过一些测试(反复试验),我能够完成这项工作。这可能不是最好的方法,但它现在适合我的目的,我将继续努力清理它。
我确定是否有本地域以及用户是否有帐户和电子邮件地址。如果是这样,我用这个值填充了UserEmailAdd
文本框,并隐藏了标签和字段。如果没有找到本地域/用户,则标签和文本框将被取消隐藏,用户现在可以输入他们的电子邮件地址,这两种情况下都提供了用户mail.From
地址。
这是我所做的:
Try
' check if domain user exists
Dim currentADUser As System.DirectoryServices.AccountManagement.UserPrincipal
currentADUser = System.DirectoryServices.AccountManagement.UserPrincipal.Current
Dim userEmail = currentADUser.EmailAddress
If currentADUser.EmailAddress IsNot Nothing Then
LblEmail.Hide()
UserEmailAdd.Hide()
UserEmailAdd.Text = userEmail
txtSummary.Focus()
End If
' local domain user does not exist
Catch ex As Exception
UserEmailAdd.Show()
LblEmail.Show()
UserEmailAdd.Focus()
End Try
...
mail.From = New MailAddress(UserEmailAdd.Text)
jmcilhinney,感谢您激发我的更多思考。我显然不是任何类型的程序员,我还有很多东西要学。但是你的评论帮助我重新审视这个问题并找出不同的方式。
推荐阅读
- mongodb - 如何在 MongoDB 中做一个枢轴和条件组?
- arduino-esp8266 - ____ 闪烁 ESP8266 的问题 ____
- nestjs - 服务内部或外部的 Util 函数
- prometheus - 警报管理器为相同的警报重复触发 web-hook
- flutter - 获取 Firestore 文档的文档 ID (Flutter)
- jenkins-pipeline - 如果超过 10000 个字符,松弛消息将被截断
- python - 计算数据框中响应的真阳性和假阴性
- python-3.x - python模块中是否有一种方法可以根据主程序的显式导入来工作
- excel - 如何在excel中格式化复数?
- json - 关联数组的json_decode