2009-06-04 10 views
4

.net 2.0でremotingを使用しているときに、接続しているクライアントに関する情報を調べる/取得することは可能ですか?私は、サーバー側で接続しているクライアントに関する情報を知りたいので、それに応じて行動することができますか?これは決して最大10同時接続/要求クライアントを持つことはありません、小さくて非常にローカルなアプリケーションです。remoting - クライアントに関する情報。 c#

各機能でクライアントリファレンスを渡しますか? (または何らかの識別子)?私はこのようにすることができますが、私は要求/接続クライアントから情報を取得することを好むでしょう。 IPアドレスなどがいいでしょう。

よろしく

答えて

1

このquestionあなたが探している答えを持っているかもしれません。

おそらくあなたにとって重要ではない部分を取り除き、IPAddressを実際につかむ部分を残しました。

public ServerProcessing ProcessMessage(IServerChannelSinkStack sinkStack, 
    IMessage requestmessage, ITransportHeaders requestHeaders, 
    System.IO.Stream requestStream, out IMessage responseMessage, 
    out ITransportHeaders responseHeaders, out System.IO.Stream responseStream) 
{ 
    // Get the IP address and add it to the call context. 
    IPAddress ipAddr = (IPAddress)requestHeaders[CommonTransportKeys.IPAddress]; 
} 
0

This questionObjRefあなたはRemotingServices.GetObjRefForProxyときあなたから得るのURI財産すなわち、URIの見かけのフォーマットを示しそれをリモートオブジェクトに渡します。最初の2つのスラッシュの間の文字列は、プロセスごとのGUIDで、ローカルプログラムの観点からクライアントを一意に識別します。

私の場合、IPアドレスではなくクライアントを識別する方法が必要でした(これはTCP以外のチャネルでは有効ではありません)。

関連する問題