WCF SSL证书身份验证无法识别配置设置

佩德罗·安杰尔

我试图在WCF / .NET 4.0 IIS版本7.5中使用SSL证书身份验证,但是,当我启用oneToOneMappings身份验证时,系统无法识别maxReceivedMessageSize,当我注释掉oneToOneMappings身份验证部分时,IIS会识别maxReceivedMessageSize变量。

关于如何使此WCF服务使用启用SSL证书身份验证时设置的maxReceivedMessageSize值的任何想法?

服务模型部分:

<system.serviceModel>
    <services>
      <service behaviorConfiguration="AServiceBehavior" name="<IContract>">
        <endpoint address=""  binding="basicHttpBinding" bindingConfiguration="MutualSslBinding" contract="<IContract>"  name="AnEndpoint" />
        <host><baseAddresses><add baseAddress="https://asite.com/service" /></baseAddresses></host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="AServiceBehavior">
          <serviceCredentials>
          </serviceCredentials>
          <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" httpHelpPageEnabled="true" />
          <serviceSecurityAudit auditLogLocation="Security" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  <bindings>
      <basicHttpBinding>
        <binding name="MutualSslBinding" axReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
                    maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
          <security mode="Transport"> <transport clientCredentialType="Certificate" /></security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true">
    </serviceHostingEnvironment>  
  </system.serviceModel>

证书安全性部分:

<system.webServer>
    <security>
      <access sslFlags="Ssl, SslNegotiateCert, SslRequireCert" />
      <authentication>
        <anonymousAuthentication enabled="true" />
        <basicAuthentication enabled="false" />
        <clientCertificateMappingAuthentication enabled="false" />
        <digestAuthentication enabled="false" />
        <windowsAuthentication enabled="false" />
        <iisClientCertificateMappingAuthentication enabled="true" oneToOneCertificateMappingsEnabled="true" manyToOneCertificateMappingsEnabled="true">
          <oneToOneMappings>
                        <clear />
                        <add userName="<LocalUser>" password="<EncryptedPassword>" certificate="<Authentication certificate text>" />
          </oneToOneMappings>
        </iisClientCertificateMappingAuthentication>
      </authentication>
    </security>
    <modules runAllManagedModulesForAllRequests="true" />
    <directoryBrowse enabled="false" />
  </system.webServer>
佩德罗·安杰尔

在此特定情况下,此问题与WCF配置无关,而与IIS中的uploadReadAheadSize设置有关。

TLS开销

使用SSL证书身份验证时,请求的开销可能会使身份验证过程中的大小增加到49Kb以上。

返回错误413实体太大

使用uploadReadAheadSize控制IIS允许的请求大小。

首先验证IIS请求过滤。

为此,请打开IIS管理器。选择您的应用程序。在“功能”视图中,您将看到“请求过滤”。打开此功能,然后在右侧面板上将找到“编辑功能设置”。“允许的最大内容长度”是一个可选的U-Int属性。它以字节为单位指定请求中内容的最大长度。默认值为30000000,大约为28.6MB。接下来,我们可以在IIS中设置uploadReadAheadSize。

要导航到此设置,请使用以下步骤:

启动“ Internet信息服务(IIS)管理器”

  • 展开服务器字段
  • 扩展网站
  • 选择您的应用程序所在的站点。
  • 在“功能”部分中,双击“配置编辑器”
  • 在“部分”下,选择:system.webServer> serverRuntime

默认设置值为49Kb。

MSDN上的董万军提供的回复

serverRuntime设置

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WCF SSL证书身份验证无法识别配置设置

来自分类Dev

使用证书的相互SSL的WCF身份验证错误

来自分类Dev

WCF 证书身份验证不起作用

来自分类Dev

使用自签名证书从Winforms客户端向SSL安全的WCF服务进行身份验证

来自分类Dev

具有相互身份验证证书的WCF Web服务无法进行客户端链信任验证

来自分类Dev

WCF服务的安全设置需要匿名身份验证

来自分类Dev

WCF nettcpbinding SSL证书验证问题

来自分类Dev

WCF用户身份验证和授权

来自分类Dev

WCF的身份验证问题-IP与FQDN

来自分类Dev

WCF服务身份验证+ Sitecore

来自分类Dev

WCF与Windows身份验证问题

来自分类Dev

WCF禁用匿名身份验证

来自分类Dev

WCF-添加身份验证层

来自分类Dev

具有SSL以及用户名和密码身份验证的自托管WCF服务

来自分类Dev

通过带有用户名身份验证的SSL的经典ASP消费WCF服务

来自分类Dev

通过带有用户名身份验证的SSL的经典ASP消费WCF服务

来自分类Dev

具有Kerberos身份验证的WCF:由于身份验证失败,无法满足对安全令牌的请求

来自分类Dev

具有Kerberos身份验证的WCF:由于身份验证失败,无法满足对安全令牌的请求

来自分类Dev

Xamarin + WCF + SSL +传输+证书

来自分类Dev

如何在WCF服务中为自定义绑定配置Windows身份验证?

来自分类Dev

WCF服务端点地址使用https,这是否意味着传输级别身份验证为“证书”?

来自分类Dev

禁用WCF调用的表单身份验证

来自分类Dev

WCF服务调用返回“ 407必需的代理身份验证”

来自分类Dev

托管WCF应用程序IIS身份验证

来自分类Dev

如何使用AWS身份验证保护我的WCF服务

来自分类Dev

具有WCF和Windows身份验证的CORS

来自分类Dev

Dynamics CRM和WSDL WCF身份验证

来自分类Dev

WCF用户名身份验证-教程中的例外

来自分类Dev

WCF错误:找不到令牌身份验证器

Related 相关文章

  1. 1

    WCF SSL证书身份验证无法识别配置设置

  2. 2

    使用证书的相互SSL的WCF身份验证错误

  3. 3

    WCF 证书身份验证不起作用

  4. 4

    使用自签名证书从Winforms客户端向SSL安全的WCF服务进行身份验证

  5. 5

    具有相互身份验证证书的WCF Web服务无法进行客户端链信任验证

  6. 6

    WCF服务的安全设置需要匿名身份验证

  7. 7

    WCF nettcpbinding SSL证书验证问题

  8. 8

    WCF用户身份验证和授权

  9. 9

    WCF的身份验证问题-IP与FQDN

  10. 10

    WCF服务身份验证+ Sitecore

  11. 11

    WCF与Windows身份验证问题

  12. 12

    WCF禁用匿名身份验证

  13. 13

    WCF-添加身份验证层

  14. 14

    具有SSL以及用户名和密码身份验证的自托管WCF服务

  15. 15

    通过带有用户名身份验证的SSL的经典ASP消费WCF服务

  16. 16

    通过带有用户名身份验证的SSL的经典ASP消费WCF服务

  17. 17

    具有Kerberos身份验证的WCF:由于身份验证失败,无法满足对安全令牌的请求

  18. 18

    具有Kerberos身份验证的WCF:由于身份验证失败,无法满足对安全令牌的请求

  19. 19

    Xamarin + WCF + SSL +传输+证书

  20. 20

    如何在WCF服务中为自定义绑定配置Windows身份验证?

  21. 21

    WCF服务端点地址使用https,这是否意味着传输级别身份验证为“证书”?

  22. 22

    禁用WCF调用的表单身份验证

  23. 23

    WCF服务调用返回“ 407必需的代理身份验证”

  24. 24

    托管WCF应用程序IIS身份验证

  25. 25

    如何使用AWS身份验证保护我的WCF服务

  26. 26

    具有WCF和Windows身份验证的CORS

  27. 27

    Dynamics CRM和WSDL WCF身份验证

  28. 28

    WCF用户名身份验证-教程中的例外

  29. 29

    WCF错误:找不到令牌身份验证器

热门标签

归档