【问题标题】:WCF/jQuery securityWCF/jQuery 安全性
【发布时间】:2011-10-18 13:54:40
【问题描述】:

我有一组启用了 AspNetCompatibility 的 WCF 服务并从 jQuery 中使用它们。我的 Web 应用程序需要身份验证。在这里只使用逻辑(因为我缺乏足够的知识)这是否意味着 WCF 可以访问并且仅限于当前登录的用户?我知道有人可以捕获通信数据并尝试稍后重用(我没有 ssl),但为此他应该登录。

我自己的乐观是对的、错的还是愚蠢的?

【问题讨论】:

    标签: asp.net wcf-security


    【解决方案1】:

    是的,因为您启用了 ASP.NET 兼容性并且因为您正在使用 ASP.NET 安全性,只要您对 WCF 资源具有正确的<authorization> 设置,它就应该受到 ASP.NET 安全性的保护。至少,这意味着您应该在 WCF 资源上具有如下定义的授权:

    <authorization>
        <deny users="?" /> <!-- deny all anonymous users -->
        <allow users="*" /> <!-- allow all authenticated users -->
    </authorization>
    

    仅当您允许“*”时,您的 WCF 服务才不会被未经身份验证的用户访问。

    您可以在标题为在 ASP.NET 兼容模式下托管 WCF 服务的部分下阅读有关此 here in this MSDN article 的更多信息。

    【讨论】:

    • 这可能存在安全风险,因为您现在无需经过身份验证即可使用 wcf 服务。根据他们的工作,这可能是一个巨大的风险。
    • 不知道我明白你在说什么。我并不是在建议确切的权限应该是什么,只是给出一个如何使用 ASP.NET 保护它们的基本示例。当然,您应该使用“?”指定对您的服务有意义的正确用户/角色列表。只会阻止未经身份验证的(匿名)用户访问该服务。
    • 您上面的代码将允许匿名用户,而不是拒绝他们。我想你的意思是
    • Simon,谢谢我已经有一段时间没有搞砸授权部分了。你是对的,我有 * 和 ?在我的脑海中反转。我会更新我的答案。
    • 您需要颠倒顺序。允许 * 将在拒绝之前匹配?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 2011-02-10
    相关资源
    最近更新 更多