【问题标题】:MSMQ Remote Private queues permissions in workgroup mode工作组模式下的 MSMQ 远程专用队列权限
【发布时间】:2014-02-16 11:16:22
【问题描述】:

引用自http://msdn.microsoft.com/en-us/library/19ww660c(VS.71).aspx

私有队列不会在整个网络中发布。反而 它们仅在包含它们的本地计算机上可用。 只有知道完整队列的应用程序才能访问私有队列 队列的路径名或标签。

我在运行 IIS 的 Windows 2008 Web 服务器上设置了一个专用队列(没有活动目录)。

在我授予 IIS_IUSRS 对队列的接收和发送消息访问权限后,我在 IIS 服务器上运行的 C# .NET Web 服务可以读取/写入私有队列。

我想确保没有外部应用程序可以访问这个私有队列。所以我编写了一个 C# 控制台应用程序,它使用

连接到远程队列

DIRECT=TCP:xxx.xxx.xxx.xxxx\private$\MyQueueName

但是,当我尝试连接时,我又回来了

队列路径名无效。

有人可以确认只有我的 .NET Web 服务可以访问这个私有队列吗?我唯一担心的是,任何 .NET Web 服务(在同一台 IIS 服务器上运行)都可以读取这个私有队列,如果他们知道名称的话,因为我必须授予 IIS_IUSRS 对私有队列的读/写访问权限。

对此问题和我的安全问题的澄清将不胜感激。

【问题讨论】:

    标签: c# permissions msmq


    【解决方案1】:

    首先,设置权限并不能提供安全性。如果您知道具有访问权限的帐户的 SID,则可以发送包含该 SID 的消息并且您在其中,而不管发件人的实际帐户如何。如果您想要安全,请使用证书。

    在您的示例中,在 IIS_IUSRS 帐户上下文中运行的任何应用程序都具有接收/发送权限。你不能冒充一个特定的帐户吗?

    但是,如果您不信任服务器上的其他应用程序,那么您已经被入侵了。

    【讨论】:

      【解决方案2】:

      尝试添加前导词“FORMATNAME:”,后跟不带引号的分号。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-02
        • 2021-04-26
        • 1970-01-01
        • 2013-09-10
        • 2011-10-22
        • 2016-08-10
        • 2011-06-03
        • 2012-01-21
        相关资源
        最近更新 更多