Как изменить заголовок безопасности метки времени в клиенте wcf? - PullRequest
1 голос
/ 23 мая 2019

Я пытаюсь изменить срок действия заголовка безопасности по умолчанию, который составляет от 5 минут до 1 минуты. Одной из политик безопасности сервера является временная метка (дата запроса), время жизни которой составляет одну минуту.

Есть идеи?

Я попытался создать пользовательскую привязку, но безуспешно.

<s:Envelope xmlns:u=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">
    <s:Header>
        <o:Security s:mustUnderstand=\"1\" xmlns:o=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">
            <u:Timestamp u:Id=\"uuid-6f772493-4b86-4695-b415-316a916119ec-2\">
                <u:Created>2019-05-23T12:14:26.920Z</u:Created>
                **<u:Expires>2019-05-23T12:19:26.920Z</u:Expires>**
            </u:Timestamp>

Это то, что нам нужно:

<s:Envelope xmlns:u=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">
    <s:Header>
        <o:Security s:mustUnderstand=\"1\" xmlns:o=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">
            <u:Timestamp u:Id=\"uuid-6f772493-4b86-4695-b415-316a916119ec-2\">
                <u:Created>2019-05-23T12:14:26.920Z</u:Created>
                **<u:Expires>2019-05-23T12:15:26.920Z</u:Expires>**
            </u:Timestamp>

1 Ответ

0 голосов
/ 24 мая 2019

Решением было создание пользовательской привязки:

protected override SecurityBindingElement CreateMessageSecurity()
{
     SecurityBindingElement security;
     security.EnableUnsecuredResponse = true;
     security.IncludeTimestamp = true;
     security.LocalClientSettings.TimestampValidityDuration = TimeSpan.FromMinutes(1);
     security.SecurityHeaderLayout = SecurityHeaderLayout.Lax;
     security.DefaultAlgorithmSuite = SecurityAlgorithmSuite.Basic256;
     return security;          
}
...