Asp.net WCF安全性-我不知道的内容列表';我不明白

Asp.net WCF安全性-我不知道的内容列表';我不明白,asp.net,wcf,web-services,security,wcf-security,Asp.net,Wcf,Web Services,Security,Wcf Security,关于WCF和安全性,我正在兜圈子,所以我想在这里提出一大堆问题,希望有人能帮我弄清楚 有人能给我一个简单的英语解释的传输与消息级安全 我想我有一个在SSL下运行的服务,它将根据用户的windows凭据对用户进行身份验证。我还认为我了解如何通过PrincipalPermission限制对服务方法的访问。但是我实际上如何检索当前的IPrinciple,以便根据调用服务的用户返回不同的结果呢 我已经知道如何打开跟踪,我可以使用“Microsoft服务跟踪日志查看器”查看我的跟踪日志,但如果我能弄清楚显

关于WCF和安全性,我正在兜圈子,所以我想在这里提出一大堆问题,希望有人能帮我弄清楚

  • 有人能给我一个简单的英语解释的传输与消息级安全

  • 我想我有一个在SSL下运行的服务,它将根据用户的windows凭据对用户进行身份验证。我还认为我了解如何通过PrincipalPermission限制对服务方法的访问。但是我实际上如何检索当前的IPrinciple,以便根据调用服务的用户返回不同的结果呢

  • 我已经知道如何打开跟踪,我可以使用“Microsoft服务跟踪日志查看器”查看我的跟踪日志,但如果我能弄清楚显示的是什么,我会被诅咒的。有没有合适的资源来解释如何使用这个东西

  • 使用“Certificate”clientCredentialType时,这与SSL有什么不同吗

  • 使用“Windows”clientCredentialType时,如何查看Windows用户正在通过的内容

  • 我的要求意味着我必须使用basicHttpBindings—我的假设正确吗:

    • 我只有可用的传输级安全性
    • 我无法实现此绑定的自定义用户名/密码
  • 我知道这些问题可能看起来很愚蠢,但任何澄清的帮助都会很有帮助

    编辑:

  • 如何将自定义SOAP头添加到与.asmx服务类似的manor中的服务中?这是一种有效的方法吗
  • 编辑:

    除上述问题外,我想知道是否可以通过检查Active Directory来根据windows移动设备的windows用户对其进行身份验证。就目前为止我所发现的一切而言,这似乎不太可能


    注意:对于那些不知道windows CE版本的WCF its有哪些可用功能的用户,请注意:仅限传输级安全,对于客户端凭据类型,请选择无/证书。因此,似乎CE的WCF默认不允许这样做,但我可以安全地(通过方法签名)在消息中发送此信息吗?这是发送此类信息的一种可接受的方式吗?

    我不知道所有答案,但以下是我知道的答案

  • 传输安全性意味着在传输消息时对通信进行加密,因此无法读取或篡改。消息安全性意味着消息本身的内容在传输过程中是加密的,但不一定是加密的。例如,消息安全性可以与HTTP一起使用,而传输安全性则需要使用HTTPS(或其他绑定)
  • IPrincipal principal=Thread.CurrentPrincipal
  • 没有回答
  • 是的,尽管SSL本身使用证书,但它并不相同。您可以让客户端发送一个服务已知的证书,或者由可信机构签名的证书,以证明服务知道客户端是谁以及是否允许他们进行呼叫。使用SSL只能确保第三方无法通过拦截网络包来读取客户端和服务之间的通信
  • IPrincipal principal=Thread.CurrentPrincipal;principal.Identity.Name
  • 没有。
    • 您可以选择无安全性、传输安全性、消息安全性和混合安全性,但是传输安全性将要求使用HTTPS调用端点,因为这是协议的安全版本
    • 编辑:查看位于的讨论
  • 这些问题当然并不愚蠢


    另外,我可以推荐Juval Lowy的这本书,它非常深入,并且提供了一个非常有用的框架,可以扩展WCF/简化某些事情。

    请查看。如果你需要更多的信息,你应该能够在那里找到所有的信息,它是相当完整的。尽管看起来@olle给出了一个非常完整的答案

    也检查一下这些

    Olle,非常感谢大家的回复。这里快凌晨1点了,所以我就到此为止了,但我真的很感谢您的帮助。好的,如果有什么不清楚的地方,请告诉我,我会尝试重新措辞或扩展它。我还强烈建议您对WCF服务进行编程!获取第二版,因为它已针对.NET 3.5 SP1和VS2008进行了更新SP1@Olle感谢您迄今为止的帮助,我可以请您详细说明“您可以,例如使用自定义标题”这句话吗。干杯,克里斯。@Olle,从你的编辑看来我是对的。在这种情况下,basicHttpBindings只支持传输级别的安全性,而不支持消息级别的安全性。此外,似乎自定义密码身份验证是在消息级别完成的,因此我无法使用。嘿,Owen-它们听起来一点也不愚蠢。我自己也一直在想这件事。好问题。谢谢,虽然我觉得我应该知道这些问题的一些答案,所以我还是觉得有点愚蠢:-)。