2

.NET Remotingに関するインターフェイスに関する有用な情報を見つけるための努力を尽くしましたが、IAuthorizeRemotingConnection実際には有用なものは何も見つかりませんでした。

ここでの問題は、多くの例があるため、実際には「ハウツー」ではありませんが、問題は、メソッド内でIDが互いにどのように関連しているかの1つですIsConnectingIdentityAuthorized

.NET Remoting Serviceが実行されており、最近、IAuthorizeRemotingConnectionインターフェイスをクラスに追加しました。このクラスは、IDを検証するためにRemotingサービスによって使用されます。私が抱えている問題は、「どのID」を検証しているのかということです。

IAuthorizeRemotingConnectionローカルシステムに渡されたときにメソッドに渡されたIDをログに記録できます。IDはMACHINE\ASPNETユーザーであることがわかります。Howeeer、別の開発Webサーバーに対してサービスをホストしている開発サーバーでは、IDを確認できません。

基本的に、IsConnectingEndPointAuthorizedメソッドがリモーティングサービスによって呼び出され、これが発生したことをログに記録できますが、IsConnectingIdentityAuthorizedが呼び出されていることはわかりません。

ローカルシステムにまったく同じコードベースを使用しているのに、開発環境では動作が異なるため、これは非常に奇妙です。最も苛立たしいのは、どのIDがサービスを使用しようとしているのかわからないことです。それでも、IDが呼び出されていることを確認するために使用されるメソッドがまったくわかりません。

Webアプリケーションログに「ログインが拒否されました」というメッセージで例外が発生しているのがわかります。舞台裏で何らかの形で「事前認証」を行っているのではないかと思いますが、これは失敗するため、IsConnectingIdentityAuthorizedメソッドを呼び出すことすらできません。

誰もが共有できるこれについて何か経験がありますか?

「WCFを使用する」サービスを追加する前に、そのようにする予定ですが、完全に実装されるまでにはまだしばらく時間がかかりますまた、WCFに関する本物のアイデンティティに関する質問もあります。ただし、このリモート処理の問題も特定できるようにしたいと思います。

4

1 に答える 1

0

リモーティングオブジェクトをSSLで動作させるときに、これらの線に沿って何かに遭遇しました。信頼の問題(サイトにFullTrustを与えるためのcaspol)を解決する必要があり、使用中のすべてのコンポーネントに厳密な名前が付けられていたため、生成されたアセンブリバージョンの使用を停止する必要がありました

[assembly: AssemblyVersion("7.3.*")]

代わりに、それらが修正されたことを確認してください

[assembly: AssemblyVersion("7.3.1.1")]

-これにより、融合の混乱が大幅に軽減されたようです。

それ以外に、開発サーバーのAppPoolユーザーに特権がありますか、それとも接続全体で同じユーザーを使用していることを確認する必要がありますか?呼び出し元のMACHINE\ASPNETには、サーバーとは異なるセキュリティトークンがあるため、ドメインユーザーで認証することをお勧めしますか?全体像といくつかのアイデアについては、これを参照してください:http: //msdn.microsoft.com/en-us/library/ff649264.aspx

于 2012-02-01T16:42:28.027 に答える