【问题标题】:IAuthorizeRemotingConnection .NET RemotingIAuthorizeRemotingConnection .NET 远程处理
【发布时间】:2011-03-17 19:22:10
【问题描述】:

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

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

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

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

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

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

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

谁有这方面的经验可以分享一下?

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

【问题讨论】:

  • 您能否发布带有“登录被拒绝”消息的完整异常?

标签: .net security remoting endpoints


【解决方案1】:

在让远程对象在 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-24
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多