2

我已经竭尽全力寻找有关IAuthorizeRemotingConnection.NET Remoting 接口的任何有用信息,但我并没有真正找到任何有用的信息。

这里的问题并不是真正的“操作方法”,因为那里有很多例子,但问题是方法中身份如何相互关联IsConnectingIdentityAuthorized

我们有一个正在运行的 .NET 远程服务,并且最近将该IAuthorizeRemotingConnection接口添加到一个类中,然后远程服务使用该类来验证身份。我遇到的问题是我们正在验证“什么身份”?

我能够记录身份,因为它被传递到IAuthorizeRemotingConnection方法中,因为它是在我的本地系统上传递的。我可以看出身份是 MACHINE\ASPNET 用户。Howeeer,在我们的开发服务器中,我们针对另一个开发 Web 服务器托管服务,我无法看到身份。

基本上,虽然IsConnectingEndPointAuthorized远程服务调用了该方法,并且我可以记录发生这种情况,但我从未看到该IsConnectingIdentityAuthorized方法被调用。

这很奇怪,因为当我为本地系统使用相同的代码库时,它在开发环境中的工作方式不同。最令人沮丧的是,我不知道哪个身份正在尝试使用该服务,即使那样,我什至看不到用于验证身份的方法正在被调用。

我确实在 Web 应用程序日志中看到出现“登录被拒绝”消息的异常。我想知道我们是否在幕后以某种方式“预先验证”,这失败了,所以我们甚至无法调用该IsConnectingIdentityAuthorized方法。

有人有这方面的经验可以分享吗?

在您添加“使用 WCF”服务之前,我打算这样做,但要完全实现还需要一段时间。我也有关于 WCF 的身份验证问题。但是,我也希望能够解决这个远程问题。

4

1 回答 1

0

当让远程对象在 SSL 下工作时,我遇到了这些问题。我们需要解决信任问题(caspol 提供站点 FullTrust),并且由于使用的所有组件都是强命名的,我们需要停止使用生成的程序集版本

[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 回答