我有一个asp.net Web应用程序,可以调用多个WCF服务。该网络应用程序位于www.mydomain.com,服务位于services.mydomain.com。它们来自同一台服务器。
我刚刚将安全端点(bassicHttpBindings)添加到使用传输安全性(https)和Windows身份验证的服务中:
<binding name="WindowsSecuredBinding">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
并将客户端Web应用程序配置为使用这些新的安全端点。我期待下一步是在Web应用程序中编写一些代码来设置客户端凭据以通过Windows身份验证。令我惊讶的是,服务调用正在成功而不设置客户端凭据。我假设它必须发送Web应用程序正在运行的帐户,但不知道如何验证。在其他情况下,我认为我已经看到客户端凭据没有隐式默认值。
所以我有两个问题:
答案 0 :(得分:3)
以下是审核MSDN页面的重要部分:
<behaviors>
<behavior name="myAuditBehavior">
<serviceSecurityAudit auditLogLocation="Application"
suppressAuditFailure="false"
serviceAuthorizationAuditLevel="None"
messageAuthenticationAuditLevel="SuccessOrFailure" />
</behavior>
</behaviors>
并将行为添加到服务中:
<service type="[Your service type here]" behaviorConfiguration="myAuditBehavior">
启用审核后,您可以看到所有授权活动(如果以这种方式配置,则会成功和失败)。这应该允许您验证您的安全性是否按照您希望的方式设置。
如果您碰巧需要传递使用ASP.NET Web应用程序的用户凭据的功能(这称为Impersonation),则可以在此页面上找到msdn文档“Delagation and Impersonation with WCF”。< / p>