0

またあったね。

従業員が遠隔地から会社のリソースへの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の元の名前を置き換える名前が、残りのテキストボックスの情報も置き換えるようにするには、どうすればよいですか?

必要に応じて追加情報を掲載します。

よろしくお願いします

4

1 に答える 1

1

フォームの読み込み時にすべてのテキストボックスを読み込むのではなくTextChanged、ユーザー名のテキストボックスのイベントからそれらを読み込みます。これにより、ユーザー名のテキストボックスが変更されるたびに、他のすべてのテキストボックスが自動的に再読み込みされ、変更が反映されます。

于 2013-02-12T16:43:40.650 に答える