またあったね。
従業員が遠隔地から会社のリソースへのVPNアクセスなどを要求するために使用するWebフォームがあります。
ActiveDirectoryからドロップダウンリストボックスにデータを入力しています。これは正常に機能します。
次に、次のように、ログインしたユーザーの値を割り当てるだけでActiveDirectoryから入力されるテキストボックスがあります。
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からログに記録されたユーザー名に基づいてログインすると、残りのテキストボックスにユーザーの情報が入力されます。ここで繰り返して申し訳ありません。
ただし、ログインしているユーザーが必ずしも登録を必要としているユーザーであるとは限りません。
つまり、ログインして別の従業員の要求を満たすことができます。
この場合、Active Directoryから入力されたドロップダウンリストから、要求を完了しているユーザーの名前を選択する必要があります。
ドロップダウンリストからこの名前を選択すると、textbox1.Textの自分の名前が置き換えられます。
これは正常に機能しますが、残りのテキストボックスには自分の情報が保持されます。
textbox1.Textの元の名前を置き換える名前が、残りのテキストボックスの情報も置き換えるようにするには、どうすればよいですか?
必要に応じて追加情報を掲載します。
よろしくお願いします