我们有一个网络表单,员工用它来请求从远程位置访问公司资源等VPN。
我正在从Active Directory填充下拉列表框。这很好。
然后我有一个文本框也是从Active Directory填充的,只需分配登录用户的值,如下所示:
textbox1.Text = User.Identity.Name
根据分配给textbox1.Text
的姓名值其余的texbox用我的工作信息填充,代码如下:
textbox1.Text = User.Identity.Name
textbox1.Text = StrConv(textbox1.Text, vbProperCase)
txtdate.Text = DateTime.Now.ToString("MM/dd/yyyy")
Try
'Creates a Directory Entry Instance with the Username and Password provided
Dim deSystem As New DirectoryEntry("LDAP://OU=Departments,DC=domaname, DC=com", "usrname", "password")
'Authenticacion type Secure
deSystem.AuthenticationType = AuthenticationTypes.Secure
'Creates a Directory Searcher Instance
Dim dsSystem As New DirectorySearcher(deSystem)
'sAMAccountName is equal to our username passed in.
dsSystem.Filter = "sAMAccountName=" & textbox1.Text
'Properties that the Procedures will load from Active Directory
dsSystem.PropertiesToLoad.Add("mail") 'email address
dsSystem.PropertiesToLoad.Add("department") 'dept
dsSystem.PropertiesToLoad.Add("physicalDeliveryOfficeName") 'office
dsSystem.PropertiesToLoad.Add("title") 'title, eg programmer1
dsSystem.PropertiesToLoad.Add("telephoneNumber") 'phone
dsSystem.PropertiesToLoad.Add("streetAddress") 'street address
dsSystem.PropertiesToLoad.Add("l") 'city
dsSystem.PropertiesToLoad.Add("st") 'state
dsSystem.PropertiesToLoad.Add("postalCode") 'zip code
dsSystem.PropertiesToLoad.Add("EmployeeId") 'empid
dsSystem.PropertiesToLoad.Add("givenName") '//first name from active directory
dsSystem.PropertiesToLoad.Add("sn") '//lastname from active directory
'Find the user data
Dim srSystem As SearchResult = dsSystem.FindOne()
'Obtains the properties recently loaded
txtemail.Text = srSystem.Properties("mail").Item(0).ToString
dept.Text = srSystem.Properties("department").Item(0).ToString
office.Text = srSystem.Properties("physicalDeliveryOfficeName").Item(0).ToString
txttitle.Text = srSystem.Properties("title").Item(0).ToString
phone.Text = srSystem.Properties("telephoneNumber").Item(0).ToString
workaddress.Text = srSystem.Properties("streetAddress").Item(0).ToString
city.Text = srSystem.Properties("l").Item(0).ToString
state.Text = srSystem.Properties("st").Item(0).ToString
zipcode.Text = srSystem.Properties("postalCode").Item(0).ToString
hiddenempId.Value = srSystem.Properties("EmployeeId").Item(0).ToString
HiddenFName.Value = srSystem.Properties("givenName").Item(0).ToString
HiddenLName.Value = srSystem.Properties("sn").Item(0).ToString
这也很好。
这就是我的问题所在。
最初,当用户登录时,根据Active Directory中记录的用户名,其余的文本框将填入用户的info.Sorry,以便在此处重复。
但是,有时,登录的用户不一定是需要请求的用户。
换句话说,我可以登录以填写另一名员工的请求。
在这种情况下,我需要从Active Directory中填充的下拉列表中选择我正在完成请求的用户的名称。
当我从下拉列表中选择此名称时,它会替换textbox1.Text上我自己的名字。
这样可以正常工作,但其他文本框保留了我自己的信息。
我需要做些什么才能确保在textbox1.Text上替换原始名称的名称也会替换其他文本框中的信息?
我会按要求发布其他信息。
非常感谢提前
答案 0 :(得分:1)
不是在加载表单时加载所有文本框,而是从用户名文本框的TextChanged
事件加载它们。这样,只要用户名文本框发生更改,所有其他文本框都将自动重新加载以反映更改。