ユーザー認証のために、(C#/.NET を使用して) ファイアウォールの背後にあるリモート LDAP サーバーにアクセスする必要があります。
リモート サイトのファイアウォールは特定の IP アドレスを許可するように設定されていますが、それはサーバーのプライマリ IP アドレスではありません。つまり、デフォルトでは、リモート LDAP サーバーへの接続にはプライマリ IP が使用されます。
.NET で LDAP にセカンダリ IP アドレスを使用させるにはどうすればよいですか?
特にSystem.DirectoryServices.DirectoryEntry
andSystem.DirectoryServices.AccountManagement.PrincipalContext
クラスを使用していますが、ローカル エンドポイントを制御する方法がわかりません。
これは、TcpClient を使用してローカル IP アドレスにバインドする方法です。
using System.Net;
using System.Net.Sockets;
IPEndPoint localEndpoint = ...get relevant local ip address that needs to connect
TcpClient tcp = new TcpClient( localEndpoint );
...do stuff with tcp client
注意: この場合、サーバーのプライマリ IP アドレスは変更できません。
PS: ここでは「バインド」という言葉をローカル エンド ポイントへのバインドを意味するために使用していますが、LDAP ではディレクトリへの接続/認証に「バインド」という言葉を使用します。