Ошибка при проверки безопасности сообщения

Произошла ошибка при проверке безопасности сообщения

когда я пытаюсь вызвать службу WCF я получаю следующее сообщение «произошла ошибка при проверке безопасности сообщения.»

когда я удаляю пользовательскую аутентификацию, служба работает без проблем. Я не могу понять, что я неправильно сконфигурировал в своей сети.конфиг. Любое понимание будет оценено.

  <system.serviceModel>
     <services>
        <service behaviorConfiguration="NAThriveExtensions.nableAPIBehavior"
          name="NAThriveExtensions.nableAPI">
           <endpoint 
             address="" 
             binding="basicHttpBinding" 
             bindingConfiguration="basicHttpBinding_Secure"
             contract="NAThriveExtensions.InableAPI">
           </endpoint>
           <endpoint 
             address="mex" 
             binding="mexHttpsBinding" 
             contract="IMetadataExchange" />
        </service>
     </services>
     <behaviors>
        <serviceBehaviors>
          <behavior name="NAThriveExtensions.nableAPIBehavior">
            <serviceMetadata httpsGetEnabled="true" />
            <serviceDebug includeExceptionDetailInFaults="false" />
            <serviceCredentials>
              <userNameAuthentication 
                userNamePasswordValidationMode="Custom" 
              customUserNamePasswordValidatorType= "NAThriveExtensions.Authentication, NAThriveExtensions" />
            </serviceCredentials>
          </behavior>
        </serviceBehaviors>
     </behaviors>
     <bindings>
       <basicHttpBinding>
         <binding name="basicHttpBinding_Secure">
           <security mode="TransportWithMessageCredential">
             <message clientCredentialType="UserName"/>
           </security>
         </binding>
       </basicHttpBinding>
     </bindings>
  </system.serviceModel>

7 ответов


Я получал это же сообщение об ошибке, и оказалось, что это связано с разницей во времени между моей рабочей станцией и сервером, на котором размещена служба WCF. Сервер был около 10 минут позади моей машины, и WCF security, похоже, не очень нравится.

чтобы найти корневую проблему, я включил serviceSecurityAuditing в конфигурационном файле сервера. Добавьте в конфигурацию/систему следующее.serviceModel / поведение / serviceBehaviors / раздел поведение для вашего обслуживания:

<serviceSecurityAudit 
    auditLogLocation="Application" 
    serviceAuthorizationAuditLevel="Failure" 
    messageAuthenticationAuditLevel="Failure" 
    suppressAuditFailure="true"/>

следующий сайт был полезен в выяснении этого:

http://blogs.microsoft.co.il/blogs/urig/archive/2011/01/23/wcf-quot-an-error-occurred-when-verifying-security-for-the-message-quot-and-service-security-audit.aspx


другая причина это сообщение, когда некоторые из ваших машин не синхронизированы во времени. WCF по умолчанию допускает пятиминутный разрыв; кроме того, он выдает ошибку, если что-то не синхронизировано.

раствор для синхронизации всех ваших машин. time.windows.com славится тем, что не работает, поэтому я предлагаю использовать что-то другое. (Если вы находитесь в корпоративной среде, локальный контроллер домена может быть правильный выбор.)


Это оказалось проблемой на стороне потребления, а не с самой службой. Webmethods 8 программного обеспечения AG потреблял этот сервер, но не было никакого обработчика безопасности, добавленного к службе, поэтому учетные данные не были добавлены в заголовок, что привело к вышеупомянутой ошибке.


Я получаю ту же ошибку на моем сервере IIS 7.5. Я забыл добавить разрешение на чтение на закрытый ключ сертификата в виртуальный аккаунт пула приложений (например, IIS AppPoolASP.NET v4.0).

для информации, тестируя различные комбинации учетных записей и разрешений, я заметил, что пул приложений необходимо переработать, чтобы потерять доступ к ключу, как только он был извлечен один раз.

(0x80131501-произошла ошибка при проверке безопасности сообщение.)


Я получал ту же ошибку, и ни одна из вышеперечисленных помощь для меня.

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

Да, звучит смешно, но как только я завернул строки подключения в родительской сети.config с элементом location все начали работать.

для ясности, в родительской сети.config я изменил это

<connectionStrings>
    <add name="..." />
</connectionStrings>

в это

<location path="." inheritInChildApplications="false">
    <connectionStrings>
        <add name="..." />
    </connectionStrings>
</location>

обратите внимание, что эта ошибка также привела к этому очень бесполезному serviceSecurityAudit сообщение:

ошибка проверки подлинности сообщения.
Услуга. :..
Действие:http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT
ClientIdentity:
Значение activityid:
ArgumentNullException: значение не может быть null.
Имя параметра: менеджер


Я получал ту же ошибку. Я забыл добавить разрешение на чтение в базу данных членства aspnetdb в (IIS APPPOOLDefaultAppPool).

ошибка проверки подлинности сообщения. Услуга.:…

действие:http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT

ClientIdentity:

значение activityid:

SqlException: не удается открыть базу данных «aspnetdb», запрошенную логином. Ошибка входа в систему.

ошибка входа в систему для IIS пользователя
Пула средством’.


имя пользователя и пароль сервер подключения,а не ваши
имя пользователя и пароль для входа в систему.


Здравствуйте.
У меня wcf сервис в виде службы.
Конфигурация сервера:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<configuration> <connectionStrings>     <add name="dbAuthentication" providerName="System.Data.SqlClient" connectionString="Data Source = IVANOVAAIVANOV; User ID=fsync; Password=mt043384; Initial Catalog = GTP"  />   </connectionStrings> <system.web>     <membership defaultProvider="DefaultMembershipProvider" >       <providers>         <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="dbAuthentication" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />       </providers>     </membership>     <roleManager enabled="true" defaultProvider="DefaultRoleProvider">       <providers>         <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />       </providers>     </roleManager>   </system.web> <system.serviceModel>     <behaviors>       <serviceBehaviors>         <behavior name="">           <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />           <serviceDebug includeExceptionDetailInFaults="true" />         <serviceCredentials>           <userNameAuthentication    membershipProviderName="DefaultMembershipProvider"/>         </serviceCredentials>         </behavior>       </serviceBehaviors>       <endpointBehaviors>         <behavior name="webHttpBehavior">           <webHttp />         </behavior>       </endpointBehaviors>     </behaviors>     <services>       <service name="AppServer.ServiceFacade">         <endpoint address="" binding="customBinding" bindingConfiguration="custBinding" contract="AppServer.IServiceFacade">           <identity>             <dns value="localhost" />           </identity>         </endpoint>         <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />         <endpoint address="" binding="webHttpBinding" behaviorConfiguration="webHttpBehavior" contract="AppServer.IClientAccessPolicy" />                 <host>           <baseAddresses>             <add baseAddress="net.tcp://localhost:4504/ServiceFacade" />             <add baseAddress="http://localhost:80" />           </baseAddresses>         </host>       </service>     </services>     <bindings>       <basicHttpBinding>         <binding name="LongTimeout" closeTimeout="01:00:00" openTimeout="01:00:00" receiveTimeout="01:00:00" sendTimeout="01:00:00" />         <binding name="MyBasicHttpBinding" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">           <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />       </binding>       </basicHttpBinding>       <netTcpBinding>         <binding name="tcpBinding" closeTimeout="00:10:00" openTimeout="00:1:00" receiveTimeout="00:30:00" sendTimeout="00:30:00" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">           <!--portSharingEnabled="true"-->           <readerQuotas maxDepth="100" maxArrayLength="10485760" maxBytesPerRead="2147483647" maxStringContentLength="2147483647" />           <security />         </binding>       </netTcpBinding>     <customBinding>       <binding name="custBinding" closeTimeout="00:10:00" openTimeout="00:1:00" receiveTimeout="00:30:00" sendTimeout="00:30:00">           <!--portSharingEnabled="true"-->           <!--<readerQuotas maxDepth="100" maxArrayLength="10485760" maxBytesPerRead="2147483647" maxStringContentLength="2147483647" />-->           <security authenticationMode="UserNameOverTransport"  allowInsecureTransport="true" includeTimestamp="true"/>         <tcpTransport maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/>         </binding>         </customBinding>     </bindings>   </system.serviceModel> </configuration>

Конфигурация клиента:

XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 
<configuration>     <system.serviceModel>         <bindings>             <customBinding>                 <binding name="NetTcpBinding_IServiceFacade" >                     <binaryMessageEncoding  />                     <tcpTransport  maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />                                   </binding>             </customBinding>         </bindings>         <client>             <endpoint address="net.tcp://localhost:4504/ServiceFacade" binding="customBinding"                 bindingConfiguration="NetTcpBinding_IServiceFacade" contract="ServiceReference.IServiceFacade"                 name="NetTcpBinding_IServiceFacade" />         </client>     </system.serviceModel> </configuration>

На клиенте устанавливаю Username и Password. При вызове любого контракта из фасада сервера, на клиенте летит исключение «Ошибка при проверке безопасности сообщения». Подскажите в чем проблема. Спасибо.

C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 
private async void LoginWithUsernamePassword()     {       ClientProvider.CurrentClient.ClientCredentials.UserName.UserName = Username;       ClientProvider.CurrentClient.ClientCredentials.UserName.Password = Password;       //IsBusy = true;       //BusyContent = "Производится вход в систему...";       //ClientWrapper.CurrentUser = await ClientWrapper.Instance.TaskAsyncLogin(Username, Password);       //if (!ClientWrapper.CurrentUser.IsAuth)       //  AuthResult = $"Неверная пара логин или пароль:nUsername: [{Username}]nPassword: [{Password}]";       //else if (IsRemember)       //  CreateCookies();         //IsBusy = false;     }

Добавлено через 7 часов 44 минуты
В общем, вроде понял почему — в binding, на клиенте, необходимо добавить

XML
1 
<security authenticationMode="UserNameOverTransport"  allowInsecureTransport="true" includeTimestamp="true"/>

На проблема в том, что в silverlight allowInsecureTransport=»true» не видит. А без данного атрибута летит исключение.
Как настроить аутентификацию при помощи дефолтных провайдеров в связке wcf сервер и silverlight клиент остается открытым

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

Когда я пытаюсь вызвать службу WCF, я получаю следующее сообщение: «Произошла ошибка при проверке безопасности сообщения».

Когда я удаляю пользовательскую аутентификацию, служба работает без проблем. Я не могу понять, что я неправильно сконфигурировал в своем web.config. Любое понимание будет оценено.

  <system.serviceModel>
     <services>
        <service behaviorConfiguration="NAThriveExtensions.nableAPIBehavior"
          name="NAThriveExtensions.nableAPI">
           <endpoint 
             address="" 
             binding="basicHttpBinding" 
             bindingConfiguration="basicHttpBinding_Secure"
             contract="NAThriveExtensions.InableAPI">
           </endpoint>
           <endpoint 
             address="mex" 
             binding="mexHttpsBinding" 
             contract="IMetadataExchange" />
        </service>
     </services>
     <behaviors>
        <serviceBehaviors>
          <behavior name="NAThriveExtensions.nableAPIBehavior">
            <serviceMetadata httpsGetEnabled="true" />
            <serviceDebug includeExceptionDetailInFaults="false" />
            <serviceCredentials>
              <userNameAuthentication 
                userNamePasswordValidationMode="Custom" 
              customUserNamePasswordValidatorType= "NAThriveExtensions.Authentication, NAThriveExtensions" />
            </serviceCredentials>
          </behavior>
        </serviceBehaviors>
     </behaviors>
     <bindings>
       <basicHttpBinding>
         <binding name="basicHttpBinding_Secure">
           <security mode="TransportWithMessageCredential">
             <message clientCredentialType="UserName"/>
           </security>
         </binding>
       </basicHttpBinding>
     </bindings>
  </system.serviceModel>

8 ответов

Лучший ответ

В конечном итоге это стало проблемой для потребителя, а не для самой службы. WebMethods 8 компании Software AG использовала этот сервер, но к службе не был добавлен обработчик безопасности, поэтому учетные данные не добавлялись в заголовок, что приводило к вышеупомянутой ошибке.


7

Matt Klepeis
8 Окт 2010 в 20:24

Я получал такое же сообщение об ошибке, и это оказалось из-за разницы во времени между моей рабочей станцией и сервером, на котором размещена служба WCF. Сервер отставал от моей машины примерно на 10 минут, и безопасности WCF это, похоже, не очень нравится.

Чтобы найти основную проблему, я включил serviceSecurityAuditing в файле конфигурации сервера. Добавьте следующее в раздел конфигурации / system.serviceModel / behavior / serviceBehaviors / behavior для своей службы:

<serviceSecurityAudit 
    auditLogLocation="Application" 
    serviceAuthorizationAuditLevel="Failure" 
    messageAuthenticationAuditLevel="Failure" 
    suppressAuditFailure="true"/>

Следующий сайт помог разобраться в этом:

http://blogs.microsoft.co.il/blogs/urig/archive/2011/01/23/wcf-quot-an-error-occurred-when-verifying-security-for-the-message-quot-and- сервис-безопасность-audit.aspx


40

Sam
8 Мар 2013 в 03:10

Другая причина этого сообщения — когда некоторые из ваших компьютеров не синхронизированы во времени. WCF по умолчанию допускает пятиминутный перерыв; помимо этого, он выдает ошибку, если что-то не синхронизируется.

Решение состоит в том, чтобы синхронизировать все ваши машины. time.windows.com печально известен тем, что не работает, поэтому я предлагаю использовать что-нибудь другое. (Если вы работаете в корпоративной среде, здесь может быть правильным выбором локальный контроллер домена.)


19

ashes999
31 Янв 2014 в 20:30

У меня была аналогичная проблема. Я создавал строки в формате datetime, используя мое местное время , но моя служба / сервер ожидала GMT .

Мне нужно было получить время по Гринвичу (JAVA):

final Date currentTime = new Date();    
final SimpleDateFormat sdf = 
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.000Z'");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(sdf.format(currentTime));


1

Pablo Chvx
17 Мар 2019 в 23:42

Я получал ту же ошибку на своем сервере IIS 7.5. Я забыл добавить разрешение на чтение закрытого ключа сертификата в пул приложений виртуальная учетная запись (например, IIS AppPool ASP.NET v4.0).

Для информации, при тестировании различных комбинаций учетных записей и разрешений я заметил, что пул приложений необходимо переработать, чтобы потерять доступ к ключу после того, как он был получен один раз.

(0x80131501 — Произошла ошибка при проверке безопасности сообщения.)


0

ssg31415926
8 Апр 2013 в 09:57

Я получал ту же ошибку, и ничего из вышеперечисленного мне не помогло.

Я наконец отследил это до connectionStrings в родительском файле web.config (моя служба была развернута в дочернем приложении на сайте администратора).

Да, звучит смешно, но как только я обернул строки подключения в родительский файл web.config элементом местоположения, все заработало.

Для ясности в родительском файле web.config я изменил это

<connectionStrings>
    <add name="..." />
</connectionStrings>

К этому

<location path="." inheritInChildApplications="false">
    <connectionStrings>
        <add name="..." />
    </connectionStrings>
</location>

Обратите внимание, что эта ошибка также привела к очень бесполезному serviceSecurityAudit сообщение журнала:

Ошибка аутентификации сообщения.
Сервис: …
Действие: http://schemas.xmlsoap.org/ws/2005/02 / trust / RST / SCT
ClientIdentity:
ActivityId:
ArgumentNullException: значение не может быть нулевым.
Название параметра: менеджер

Я получал ту же ошибку. Я забыл добавить разрешение на чтение базы данных членства aspnetdb в (IIS APPPOOL DefaultAppPool).

Ошибка аутентификации сообщения. Обслуживание:….

Действие: http://schemas.xmlsoap.org/ws/2005/ 02 / trust / RST / SCT

ClientIdentity:

ActivityId:

SqlException: не удается открыть базу данных «aspnetdb», запрошенную при входе в систему. Не удалось войти в систему.

Ошибка входа для пользователя IIS APPPOOL DefaultAppPool.


0

Community
20 Июн 2020 в 12:12

Имя пользователя и пароль — это сервер, к которому вы подключаетесь , а не ваш имя пользователя и пароль для входа в систему.


-4

MapleStory
23 Дек 2015 в 12:05

Проблема со скуд.

Добрый вечер друзья!
Помогите разобраться с глючным скуд, доставшимся по наследству. Есть откатные ворота (привод Came-bx246), калитка с электромагнитным замком accordtech ml-100, 3 считывателя cp-z metall (вмонтированы в кирпичные столбы), считыватель matrix IV RF (в термошкафу в 34 м от ворот), кнопка выхода и сигнальная лампа came Kled 24, пара фотоэлементов Delta. В термошкафу — контроллер RusGuard ACS-103-CE, 2 ББП-30 Accordtech, стабилизатор ippon AVR-1000, реле Finder с 1 перекидным контактом 12V ACDC 6A, роутер zyxel, терморегулятор и нагревательный элемент, автомат.
По точкам доступа. Калитка — вход считыватель cp-z, выход — кнопка. Ворота — вход/выход считыватель RF, и 2 считывателя cp-z. (кто-то пользуется пультами, кто-то картами e-marine). Как подключены считыватели пока не разобрался, завтра поковыряюсь, отпишусь. Карты и пульты прописываются без нареканий.
Проблемы следующие.
1. Ворота теряют длину, а именно не закрывшись полностью, снова начинают открываться. Раз на 3-4 длину находят и начинают работать как надо.
2. Через 4 дня после подключения начали жить своей жизнью. Приехал, ворота стоят открытые. Закрыл с карты. Не успел от них отойти, как они стали открываться/закрываться и так 2 цикла, после которых полностью закрывались. При этом все 3 считывателя издавали по единичному не синхронному писку, а контроллер перегружался по питанию. Перезагрузка происходила в момент, когда ворота замедлялись перед окончательным закрытием. Глянул подключение — вся система подключена через 2 ББП-30. Предположил, что воротам просто не хватает питания. В качестве эксперимента, переподключил их на 220. Теперь новый цирк. Контроллер больше не глючит, считыватели не пищат и ворота работают нормально…Часа 4…А дальше просто отключаются, не реагируя на пульты и карты, и стоят ЗАКРЫТЫМИ! Складывается ощущение, что разряжаются аккумуляторы, вот только они в этот момент отключены.
Подскажите, куда копать?

Локализация ошибки. Компоненты

АРМ (распределенный вариант установки) и сервер RusGuard. Все версии ПО.

Описание причин и устранение ошибки

Если время и дата настроены некорректно, возможно возникновение ошибки при запуске ПО (см. рис. 7). Для исправления ошибки необходимо привести локальные настройки времени и даты в соответствие с сервером. Допустимое расхождение: +/- 5 минут.

Рисунок 7 - Ошибка при запуске ПО. Некорректно выставлено время и дата на локальном ПК

Рисунок 7 — Ошибка при запуске ПО. Некорректно выставлено время и дата на локальном ПК

Пример

Корректная настройка

В таблице ниже приведены примеры корректной настройки времени/даты (см. табл. 1).

Таблица 1 — Пример правильной настройки времени/даты

Сервер

АРМ

Время 16.50 (часовой пояс +4)

Время 16.50 (часовой пояс +4)

Время 16.50 (часовой пояс +4)

Время 15.50 (часовой пояс +3)

Время 16.50 (часовой пояс +4)

Время 17.50 (часовой пояс +5)

Некорректная настройка

В таблице ниже (см. табл. 2) приведены примеры некорректной настройки времени/даты:

одинаковое время при разных часовых поясах;

разное время в одном часовом поясе.

Таблица 2 — Пример неправильной настройки времени/даты

Сервер

АРМ

Время 16.50 (часовой пояс +4)

Время 16.40 (часовой пояс +4)

Время 16.50 (часовой пояс +4)

Время 16.50 (часовой пояс +3)

Время 16.50 (часовой пояс +4)

Время 16.50 (часовой пояс +5)

Произошла ошибка при проверке безопасности сообщения

когда я пытаюсь вызвать службу WCF я получаю следующее сообщение «произошла ошибка при проверке безопасности сообщения.»

когда я удаляю пользовательскую аутентификацию, служба работает без проблем. Я не могу понять, что я неправильно сконфигурировал в своей сети.конфиг. Любое понимание будет оценено.

  <system.serviceModel>
     <services>
        <service behaviorConfiguration="NAThriveExtensions.nableAPIBehavior"
          name="NAThriveExtensions.nableAPI">
           <endpoint 
             address="" 
             binding="basicHttpBinding" 
             bindingConfiguration="basicHttpBinding_Secure"
             contract="NAThriveExtensions.InableAPI">
           </endpoint>
           <endpoint 
             address="mex" 
             binding="mexHttpsBinding" 
             contract="IMetadataExchange" />
        </service>
     </services>
     <behaviors>
        <serviceBehaviors>
          <behavior name="NAThriveExtensions.nableAPIBehavior">
            <serviceMetadata httpsGetEnabled="true" />
            <serviceDebug includeExceptionDetailInFaults="false" />
            <serviceCredentials>
              <userNameAuthentication 
                userNamePasswordValidationMode="Custom" 
              customUserNamePasswordValidatorType= "NAThriveExtensions.Authentication, NAThriveExtensions" />
            </serviceCredentials>
          </behavior>
        </serviceBehaviors>
     </behaviors>
     <bindings>
       <basicHttpBinding>
         <binding name="basicHttpBinding_Secure">
           <security mode="TransportWithMessageCredential">
             <message clientCredentialType="UserName"/>
           </security>
         </binding>
       </basicHttpBinding>
     </bindings>
  </system.serviceModel>

7 ответов


Я получал это же сообщение об ошибке, и оказалось, что это связано с разницей во времени между моей рабочей станцией и сервером, на котором размещена служба WCF. Сервер был около 10 минут позади моей машины, и WCF security, похоже, не очень нравится.

чтобы найти корневую проблему, я включил serviceSecurityAuditing в конфигурационном файле сервера. Добавьте в конфигурацию/систему следующее.serviceModel / поведение / serviceBehaviors / раздел поведение для вашего обслуживания:

<serviceSecurityAudit 
    auditLogLocation="Application" 
    serviceAuthorizationAuditLevel="Failure" 
    messageAuthenticationAuditLevel="Failure" 
    suppressAuditFailure="true"/>

следующий сайт был полезен в выяснении этого:

http://blogs.microsoft.co.il/blogs/urig/archive/2011/01/23/wcf-quot-an-error-occurred-when-verifying-security-for-the-message-quot-and-service-security-audit.aspx


другая причина это сообщение, когда некоторые из ваших машин не синхронизированы во времени. WCF по умолчанию допускает пятиминутный разрыв; кроме того, он выдает ошибку, если что-то не синхронизировано.

раствор для синхронизации всех ваших машин. time.windows.com славится тем, что не работает, поэтому я предлагаю использовать что-то другое. (Если вы находитесь в корпоративной среде, локальный контроллер домена может быть правильный выбор.)


Это оказалось проблемой на стороне потребления, а не с самой службой. Webmethods 8 программного обеспечения AG потреблял этот сервер, но не было никакого обработчика безопасности, добавленного к службе, поэтому учетные данные не были добавлены в заголовок, что привело к вышеупомянутой ошибке.


Я получаю ту же ошибку на моем сервере IIS 7.5. Я забыл добавить разрешение на чтение на закрытый ключ сертификата в виртуальный аккаунт пула приложений (например, IIS AppPoolASP.NET v4.0).

для информации, тестируя различные комбинации учетных записей и разрешений, я заметил, что пул приложений необходимо переработать, чтобы потерять доступ к ключу, как только он был извлечен один раз.

(0x80131501-произошла ошибка при проверке безопасности сообщение.)


Я получал ту же ошибку, и ни одна из вышеперечисленных помощь для меня.

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

Да, звучит смешно, но как только я завернул строки подключения в родительской сети.config с элементом location все начали работать.

для ясности, в родительской сети.config я изменил это

<connectionStrings>
    <add name="..." />
</connectionStrings>

в это

<location path="." inheritInChildApplications="false">
    <connectionStrings>
        <add name="..." />
    </connectionStrings>
</location>

обратите внимание, что эта ошибка также привела к этому очень бесполезному serviceSecurityAudit сообщение:

ошибка проверки подлинности сообщения.
Услуга. :..
Действие:http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT
ClientIdentity:
Значение activityid:
ArgumentNullException: значение не может быть null.
Имя параметра: менеджер


Я получал ту же ошибку. Я забыл добавить разрешение на чтение в базу данных членства aspnetdb в (IIS APPPOOLDefaultAppPool).

ошибка проверки подлинности сообщения. Услуга.:…

действие:http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT

ClientIdentity:

значение activityid:

SqlException: не удается открыть базу данных «aspnetdb», запрошенную логином. Ошибка входа в систему.

ошибка входа в систему для IIS пользователя
Пула средством’.


имя пользователя и пароль сервер подключения,а не ваши
имя пользователя и пароль для входа в систему.



Offline

pavel.kozak

 


#1
Оставлено
:

10 января 2020 г. 10:23:50(UTC)

pavel.kozak

Статус: Участник

Группы: Участники

Зарегистрирован: 13.12.2019(UTC)
Сообщений: 15
Российская Федерация

Добрый день.

Пока вопрос туманный, т.к. нет полного понимания происходящего.

Есть устоявшийся проект с использованием КриптоПро 4.0 + КриптоПро .NET (6893 работает стабильно), используется для подключения к Web сервису по WCF (Гост 2012).

Начали миграцию проекта на NET Core 3.x + .NET Framework 4.7.2, до этого была смесь Core 2.x + .NET Framework 4.6.1.

Предположительно(т.к. ставим средствами VS 2019, что он там ещё тянет под сомнением) после установки на машину SDK Core 3.x + SDK .NET Framework 4.8 + соответственно сам коре и фреймфорк получаем проблемы с WCF в существующем проекте, т.е. изменений в сам проект ещё не внесли, только установили Core + FrameWork посвежее.

При попытке подключения к сервису с авторизацией по ГОСТ ключу 2012, получаем ошибку:

Коллекция шифрования маркера не поддерживает алгоритм «urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2012-256».

Т.е. поведение, как будто не установлен КриптоПро .NET. Переустанавливаем весь комплект КриптоПро + КриптоПро .NET. Результата нет.

Проверено на двух машинах Windows 10 И Windows Server 2012 R2.
Сответсвующие лицензии есть и на рабочие станции и на сервер.
Для проверки пришлось VS 2019 на сервер поставить, т.к. думали причина в Windows 10.

Интересный момент, попробовали поднять версию Крипто Про .NET (SDK Крипто Про .NET поднимали соответственно) до 7132

Выше указанная ошибка на этапе подключения пропала, но при вызове получили другую ошибку:
System.ServiceModel.FaultException: An error occurred when verifying security for the message.

Попробую узнать какую версию SDK Крипто Про использует поставщик Web Сервиса.

Отредактировано пользователем 10 января 2020 г. 10:25:30(UTC)
 | Причина: Не указана


Вверх

Offline

Максим Коллегин

 


#2
Оставлено
:

10 января 2020 г. 10:54:47(UTC)

Максим Коллегин

Статус: Сотрудник

Группы: Администраторы

Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,253
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 21 раз
Поблагодарили: 658 раз в 582 постах

Обновлять КриптоПро .Net при обновлении .Net нужно с вероятностью 90%
Для .Net Core мы делаем fork (обсуждается в соседней ветке), но до WCF там ещё далеко.

Знания в базе знаний, поддержка в техподдержке


Вверх

WWW


Offline

pavel.kozak

 


#3
Оставлено
:

10 января 2020 г. 11:02:18(UTC)

pavel.kozak

Статус: Участник

Группы: Участники

Зарегистрирован: 13.12.2019(UTC)
Сообщений: 15
Российская Федерация

Спасибо.

Да, форк видели но не решились, поэтому и смесь Core 98% + Framework 2%.

Сосредоточимся тогда на вопросе почему не работает с .NET КриптоПро 7132.

Попробуем ещё раз пересобрать с новым SDK 7132, может что-то упустил.

Насколько важно, что бы .NET КриптоПро был одинаковый на клиенте и на сервере?
Мне кажется должно быть все равно. На сервер повлиять мы не сможем.


Вверх

Offline

Максим Коллегин

 


#4
Оставлено
:

10 января 2020 г. 11:11:32(UTC)

Максим Коллегин

Статус: Сотрудник

Группы: Администраторы

Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,253
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 21 раз
Поблагодарили: 658 раз в 582 постах

Автор: pavel.kozak Перейти к цитате

Насколько важно, что бы .NET КриптоПро был одинаковый на клиенте и на сервере?
Мне кажется должно быть все равно. На сервер повлиять мы не сможем.

Не должны быть одинаковыми.

Постарайтесь собрать трассировку WCF — посмотрим.

Знания в базе знаний, поддержка в техподдержке


Вверх

WWW


Offline

pavel.kozak

 


#5
Оставлено
:

10 января 2020 г. 13:10:45(UTC)

pavel.kozak

Статус: Участник

Группы: Участники

Зарегистрирован: 13.12.2019(UTC)
Сообщений: 15
Российская Федерация

Пересобрал с последним SDK.

Если по трейсу, то получается следующий порядок:

Пытаемся вызвать удаленную функцию TestAuthentication

Поставщик токена безопасности открыт.
На клиенте запущен сеанс безопасности.
Подлинность EndpointReference была определена.
Успешно выполнена аутентификациа.
Протокол безопасности обеспечил защиту исходящего сообщения.
Через канал отправлено сообщение
Через канал получено сообщение
Через канал запроса получен ответ.

Генерирование исключения
«Процессору безопасности не удалось найти заголовок безопасности в сообщении. Это может быть вызвано тем, что сообщение не защищено или имеет место несоответствия привязки между взаимодействующими сторонами. Это может произойти, если служба настроена с режимом безопасности, а клиент не применяет режим безопасности.»

Незащищенное или неправильно защищенное сообщение об ошибке было получено от другой стороны.

Протоколу безопасности не может проверить входящее сообщение.

Конец.

Тот же код с предыдущей версией работает корректно. Пока не возможности проверить на чистой машине свежий SDK КриптоПро на старом фреймвекке.


Вверх

Offline

pavel.kozak

 


#6
Оставлено
:

10 января 2020 г. 13:19:38(UTC)

pavel.kozak

Статус: Участник

Группы: Участники

Зарегистрирован: 13.12.2019(UTC)
Сообщений: 15
Российская Федерация

Автор: Максим Коллегин Перейти к цитате

Не должны быть одинаковыми.
Постарайтесь собрать трассировку WCF — посмотрим.

Оказывается, все таки есть зависимости.

https://br.so-ups.ru/Pub…ws=%5Bobject%20Object%5D

Как-то упустил эту новость.

Теперь тупичок, придется ещё одну кашу делать и запускать прослойку на машине со старым фремвёрком и старым .NET КриптоПро :(.


Вверх

Offline

Максим Коллегин

 


#7
Оставлено
:

10 января 2020 г. 20:27:26(UTC)

Максим Коллегин

Статус: Сотрудник

Группы: Администраторы

Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,253
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 21 раз
Поблагодарили: 658 раз в 582 постах

Странно, ничего не слышал про это. Изучим вопрос.

Знания в базе знаний, поддержка в техподдержке


Вверх

WWW


Offline

Артём Макаров

 


#8
Оставлено
:

13 января 2020 г. 8:31:35(UTC)

Артём Макаров

Статус: Сотрудник

Группы: Участники

Зарегистрирован: 20.02.2017(UTC)
Сообщений: 184

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 48 раз в 48 постах

Добрый день.

Подскажите, какой сейчас target framework задан в проекте?

Какая привязка используется?

Если возможно приложите файл конфигурации клиента (app.config).

Можете приложить wcf trace и messssage log с ошибкой?

Как собирать можно посмотреть тут — https://docs.microsoft.c…figuring-message-logging
Пример —

Код:

<system.diagnostics> <sources> <source name="System.ServiceModel.MessageLogging" switchValue="All"> <listeners> <add type="System.Diagnostics.DefaultTraceListener" name="Default"> <filter type="" /> </add> <add name="ServiceModelMessageLoggingListener"> <filter type="" /> </add> </listeners> </source> <source name="System.ServiceModel" switchValue="All" propagateActivity="true"> <listeners> <add type="System.Diagnostics.DefaultTraceListener" name="Default"> <filter type="" /> </add> <add name="ServiceModelTraceListener"> <filter type="" /> </add> </listeners> </source> </sources> <sharedListeners> <add initializeData="C:logsmy_service_web_messages.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp"> <filter type="" /> </add> <add initializeData="C:logsmy_serice_web_tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelTraceListener" traceOutputOptions="Timestamp"> <filter type="" /> </add> </sharedListeners> <trace autoflush="true" /> </system.diagnostics>

Техническую поддержку оказываем тут
Наша база знаний


Вверх

Offline

pavel.kozak

 


#9
Оставлено
:

13 января 2020 г. 10:01:40(UTC)

pavel.kozak

Статус: Участник

Группы: Участники

Зарегистрирован: 13.12.2019(UTC)
Сообщений: 15
Российская Федерация

Автор: Максим Коллегин Перейти к цитате

Странно, ничего не слышал про это. Изучим вопрос.

Насколько успел узнать, тикет поставщиком сервиса создавался, примерно в то время когда они писали эту новость.


Вверх

Offline

pavel.kozak

 


#10
Оставлено
:

13 января 2020 г. 10:11:57(UTC)

pavel.kozak

Статус: Участник

Группы: Участники

Зарегистрирован: 13.12.2019(UTC)
Сообщений: 15
Российская Федерация

Автор: Артём Макаров Перейти к цитате

Подскажите, какой сейчас target framework задан в проекте?

Проверяли несколько, поведение и ошибка одинаковые и на 4.6.2, 4.7.1, 4.8.
Версия .NET Крипто про — 7132. Основной Крипто Про ставился последний 4.0, 9963.

Автор: Артём Макаров Перейти к цитате

Какая привязка используется?

WSHttpBinding

Это пример со стенда, в основном проекте вместо конфига настройка из кода идет. Но значения те же.

<wsHttpBinding>
<binding name=»wsHttpCertificateBinding» closeTimeout=»01:00:00″ openTimeout=»01:00:00″ receiveTimeout=»01:00:00″ sendTimeout=»01:00:00″
maxBufferPoolSize=»52428800″ maxReceivedMessageSize=»52428800″>
<readerQuotas maxStringContentLength=»2147483647″/>
<security>
<message clientCredentialType=»Certificate» negotiateServiceCredential=»false»/>
</security>
</binding>
</wsHttpBinding>

<endpoint address=»http://br.so-ups.ru:8091/PersonalApi/PersonalApiService.svc/ByCertificate»
binding=»wsHttpBinding» bindingConfiguration=»wsHttpCertificateBinding»
contract=»PersonalApiService.IPersonalApiService» name=»wsHttpCertificateEndpoint»>
<identity>
<certificateReference findValue=»5cee4b2593de373e184377a718bb5af83dea466b» x509FindType=»FindByThumbprint»
storeLocation=»LocalMachine» storeName=»My» />
</identity>
</endpoint>

Автор: Артём Макаров Перейти к цитате

Можете приложить wcf trace и messssage log с ошибкой?

Я отправлю в личку, то что собрали в пятницу с нашими настройками, если не подойдет, то позже сниму с вашими рекомендациями.


Вверх
Пользователи, просматривающие эту тему

Guest

Быстрый переход
 

Вы не можете создавать новые темы в этом форуме.

Вы не можете отвечать в этом форуме.

Вы не можете удалять Ваши сообщения в этом форуме.

Вы не можете редактировать Ваши сообщения в этом форуме.

Вы не можете создавать опросы в этом форуме.

Вы не можете голосовать в этом форуме.

When I try to call a WCF service I am getting the following message «An error occurred when verifying security for the message.»

When I remove the custom authenication the service works no problem. I can’t figure out though what I have misconfigured in my web.config. Any insight would be appreciated.

  <system.serviceModel>
     <services>
        <service behaviorConfiguration="NAThriveExtensions.nableAPIBehavior"
          name="NAThriveExtensions.nableAPI">
           <endpoint 
             address="" 
             binding="basicHttpBinding" 
             bindingConfiguration="basicHttpBinding_Secure"
             contract="NAThriveExtensions.InableAPI">
           </endpoint>
           <endpoint 
             address="mex" 
             binding="mexHttpsBinding" 
             contract="IMetadataExchange" />
        </service>
     </services>
     <behaviors>
        <serviceBehaviors>
          <behavior name="NAThriveExtensions.nableAPIBehavior">
            <serviceMetadata httpsGetEnabled="true" />
            <serviceDebug includeExceptionDetailInFaults="false" />
            <serviceCredentials>
              <userNameAuthentication 
                userNamePasswordValidationMode="Custom" 
              customUserNamePasswordValidatorType= "NAThriveExtensions.Authentication, NAThriveExtensions" />
            </serviceCredentials>
          </behavior>
        </serviceBehaviors>
     </behaviors>
     <bindings>
       <basicHttpBinding>
         <binding name="basicHttpBinding_Secure">
           <security mode="TransportWithMessageCredential">
             <message clientCredentialType="UserName"/>
           </security>
         </binding>
       </basicHttpBinding>
     </bindings>
  </system.serviceModel>

asked Sep 21, 2010 at 23:26

Matt Klepeis's user avatar

Matt KlepeisMatt Klepeis

1,7241 gold badge14 silver badges25 bronze badges

I was getting this same error message and it turned out to be due to a time difference between my workstation machine and the server hosting the WCF service. The server was about 10 minutes behind my machine and WCF security doesn’t seem to like that very much.

To find the root problem I turned on serviceSecurityAuditing in the server’s config file. Add the following to the configuration/system.serviceModel/behaviors/serviceBehaviors/behavior section for your service:

<serviceSecurityAudit auditLogLocation="Application" serviceAuthorizationAuditLevel="Failure" messageAuthenticationAuditLevel="Failure" suppressAuditFailure="true"/> 

The following site was helpful in figuring this out:

http://blogs.microsoft.co.il/blogs/urig/archive/2011/01/23/wcf-quot-an-error-occurred-when-verifying-security-for-the-message-quot-and-service-security-audit.aspx

answered Mar 7, 2013 at 23:10

Sam's user avatar

3

Another cause of this message is when some of your machines are not synchronized in time. WCF, by default, allows a five-minute gap; beyond this, it throws an error if things are out of synch.

The solution is to synch all your machines. time.windows.com is notorious for not working, so I suggest using something else. (If you’re in a corporate environment, a local domain controller may be the correct choice here.)

answered Jan 31, 2014 at 16:30

ashes999's user avatar

ashes999ashes999

9,84715 gold badges72 silver badges120 bronze badges

3

This ended up being an problem on the consuming side, not with the service itself. Software AG’s webMethods 8 was consuming this server but there was no Security Handler added to the service so the credentials were not being added to the header thus resulting the in the aforementioned error.

answered Oct 8, 2010 at 16:24

Matt Klepeis's user avatar

Matt KlepeisMatt Klepeis

1,7241 gold badge14 silver badges25 bronze badges

2

I had a similar issue.
I was building my datetime formatted strings using my local time, but my service/server was expecting GMT.

I needed to get the GMT time (JAVA):

final Date currentTime = new Date(); final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.000Z'"); sdf.setTimeZone(TimeZone.getTimeZone("GMT")); System.out.println(sdf.format(currentTime)); 

answered Mar 17, 2019 at 20:42

Pablo Chvx's user avatar

Pablo ChvxPablo Chvx

1,74917 silver badges31 bronze badges

I was getting the same error on my IIS 7.5 server. I forgot to add Read permission on the certificate’s private key to the app pool virtual account (e.g. IIS AppPoolASP.NET v4.0).

For info, whilst testing various combinations of accounts and permissions, I noticed that the app pool needed to be recycled to lose access to the key, once it had been retrieved once.

(0x80131501 — An error occurred when verifying security for the message.)

answered Apr 8, 2013 at 5:57

ssg31415926's user avatar

ssg31415926ssg31415926

1,0172 gold badges13 silver badges21 bronze badges

I was getting the same error and none of the above help for me.

I finally tracked it down to connectionStrings in a parent web.config (my service was deployed to a child application to an admin site).

Yes sounds ridiculous, but as soon as I wrapped the connection strings in the parent web.config with a location element all started working.

For clarity, in parent web.config, I changed this

<connectionStrings> <add name="..." /> </connectionStrings> 

to this

<location path="." inheritInChildApplications="false"> <connectionStrings> <add name="..." /> </connectionStrings> </location> 

Note this error also resulted in this very unhelpful serviceSecurityAudit log message:

Message authentication failed.
Service: …
Action: http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT
ClientIdentity:
ActivityId:
ArgumentNullException: Value cannot be null.
Parameter name: manager

answered Sep 6, 2016 at 12:30

Dan's user avatar

I was getting the same error. I forgot to add Read permission on the membership database aspnetdb to the (IIS APPPOOLDefaultAppPool).

Message authentication failed. Service:….

Action: http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT

ClientIdentity:

ActivityId:

SqlException: Cannot open database «aspnetdb» requested by the login. The login failed.

Login failed for user ‘IIS
APPPOOLDefaultAppPool’.

Community's user avatar

answered Dec 19, 2016 at 7:24

Yasser Mohammed's user avatar

The username and password is the server you connection,not your
system login username and password.

answered Dec 23, 2015 at 9:05

MapleStory's user avatar

MapleStoryMapleStory

6183 gold badges11 silver badges21 bronze badges

У меня проблема с подключением к моей службе WCF с помощью clientCredentialType="UserName".

Когда я запускаю код ниже, я получаю сообщение об ошибке

FaultException: при проверке безопасности для сообщения произошла ошибка.

При игре с некоторыми значениями привязки я также получаю Access is denied..

Fiddler говорит, что нет заголовка авторизации, и я не могу найти имя пользователя или пароль в запросе.

Вот выдержки из моего конфига:

 <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer> <services> <service name="InventoryServices.MobileAPI" behaviorConfiguration="customBehaviour"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="secureHttpBinding" contract="InventoryServices.IMobileAPI"/> <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> </service> </services> <behaviors> <serviceBehaviors> <behavior name="customBehaviour"> <serviceSecurityAudit auditLogLocation="Application" serviceAuthorizationAuditLevel="Failure" messageAuthenticationAuditLevel="Failure" suppressAuditFailure="true" /> <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> <serviceMetadata httpsGetEnabled="true"/> <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> <serviceDebug includeExceptionDetailInFaults="true"/> <serviceCredentials> <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="InventoryLibrary.Helpers.UserAuthentication,InventoryLibrary"/> </serviceCredentials> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> <bindings> <basicHttpBinding> <binding name="secureHttpBinding"> <security mode="TransportWithMessageCredential"> <transport clientCredentialType="Basic" proxyCredentialType="Basic" realm="MyRealm"/> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security> </binding> </basicHttpBinding> </bindings> 

Мой валидатор имени пользователя/пароля выглядит так:

 public class UserAuthentication : UserNamePasswordValidator { public override void Validate(string userName, string password) { EntitiesContext db = new EntitiesContext(); db.Logs.Add(new DomainModels.Log() { DateLogged = DateTime.Now, Message = "hit auth", Type = DomainModels.LogType.Info }); db.SaveChanges(); try { if (userName == "test" && password == "test123") { Console.WriteLine("Authentic User"); } } catch (Exception ex) { throw new FaultException("Unknown Username or Incorrect Password"); } } } 

У меня это как простой тест на моем сервисе:

[OperationContract] [XmlSerializerFormat] void Test(); [PrincipalPermission(SecurityAction.Demand, Name = "test")] public void Test() { } 

У меня есть собственный сертификат SSL на моем сервере, и я могу получить доступ к своим сервисам/метаданным.

Затем я добавил ссылку на службу в консольном приложении и попытаюсь подключиться к службе с помощью этого кода ниже:

class Program { static void Main(string[] args) { Stuff.InitiateSSLTrust(); BasicHttpBinding binding = new BasicHttpBinding(); binding.Security.Mode = BasicHttpSecurityMode.Transport; binding.Security.Transport.Realm = "MyRealm"; ServiceReference1.MobileAPIClient serviceProxy = new ServiceReference1.MobileAPIClient(binding, new EndpointAddress("https://xx.xx.xx.xx/InventoryServices.MobileApi.svc")); serviceProxy.ClientCredentials.UserName.UserName = "test"; serviceProxy.ClientCredentials.UserName.Password = "test123"; try { var a = serviceProxy.Login("a", "b"); } catch (Exception ex) { var ex2 = ex; } } } public class Stuff { public static void InitiateSSLTrust() { try { //Change SSL checks so that all checks pass ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback( delegate { return true; } ); } catch (Exception ex) { } } } 

Я проверил средство просмотра событий на сервере, и эта ошибка появляется с каждым запросом:

MessageSecurityException: процессору безопасности не удалось найти заголовок безопасности в сообщении. Это может быть связано с тем, что сообщение является необеспеченной ошибкой или потому, что существует связующее несоответствие между общающимися сторонами. Это может произойти, если служба настроена для обеспечения безопасности, а клиент не использует безопасность.

Ответ 1

Вы указываете стороне клиента использовать BasicHttpSecurityMode.Transport, тогда как служба ожидает BasicHttpSecurityMode.TransportWithMessageCredential. Это проблема, потому что служба ищет учетные данные клиента в заголовке сообщения SOAP, и клиент не отправит их с привязкой, сконфигурированной таким образом.

Следовательно, поэтому пара имени пользователя/пароля отсутствует в заголовке сообщения, когда вы являетесь свидетелем. Таким образом, зритель событий был прав, что между связующими сторонами имело место несовпадение.

Также установите ClientCredentialType на клиенте BasicHttpMessageCredentialType.UserName для Message уровня безопасности. По умолчанию BasicHttpBinding использует None, которые являются анонимными клиентами.

Здесь фрагмент кода, описывающий вышеизложенные изменения:

var basicHttpBinding = new BasicHttpBinding(
BasicHttpSecurityMode.TransportWithMessageCredential);
basicHttpBinding.Security.Message.ClientCredentialType = 
BasicHttpMessageCredentialType.UserName;

Ответ 2

Это также может быть вызвано отсутствием синхронизации между клиентом и сервером. Если сертификат или подписанный токен являются недействительными по времени, то может быть возвращено то же сообщение An error occurred when verifying security for the message..

  • Remove From My Forums
  • Вопрос

  • Добрый день, господа. Подскажите, куда копать.

    Windows Server 2008 R2 32 bit.

    В IIS развернут узел,  — сайт web-forms,с аутентификацией по сертификату. 

    Есть ссылка на wcf, от которой получает данные. 

     При запускe на iisexpress через VS2013 в режиме отладки — все хорошо. После публикации и размещения на вышеуказанном сервере — вот такая ошибка:

    Ошибка сервера в приложении ‘/’.


    Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

    Сведения об исключении: System.ServiceModel.FaultException: An error occurred when verifying security for the message.

    Ошибка источника:

    Необработанное исключение при выполнении текущего веб-запроса. Информацию о происхождении и месте возникновения исключения можно получить, используя следующую трассировку стека исключений.

    Трассировка стека:

    [FaultException: An error occurred when verifying security for the message.] [MessageSecurityException: Незащищенное или неправильно защищенное сообщение об ошибке было получено от другой стороны. Код ошибки и описание см. внутреннее исключение.] System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +10818447 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) +336 Service_portal.ServiceReference.IHotLine.GetData(String ProcName, CustomParams[] _params, String DBname) +0 Service_portal.ContactClass.AddParams(String name, String value, String proc, String dbnum) +276 Service_portal.ControlDistionary.Page_Load(Object sender, EventArgs e) +59 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51 System.Web.UI.Control.OnLoad(EventArgs e) +92 System.Web.UI.Control.LoadRecursive() +54 System.Web.UI.Control.LoadRecursive() +145 System.Web.UI.Control.LoadRecursive() +145 System.Web.UI.Control.LoadRecursive() +145 System.Web.UI.Control.LoadRecursive() +145 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772 

    • Перемещено

      26 марта 2015 г. 11:36

Ответы

  • Здравствуйте,

    Похоже на ошибку с WCF, как одна из возможных причин, если время клиента и сервера отличается более чем на 10 минут, то не удастся пройти
    проверку безопасности .


    Best Regards, Andrei …
    Microsoft Certified Professional

    • Предложено в качестве ответа
      Tomas Lilov
      26 марта 2015 г. 12:30
    • Помечено в качестве ответа
      Иван ПродановMicrosoft contingent staff, Moderator
      31 марта 2015 г. 7:50
  • Remove From My Forums
  • Question

  • Hello,

    We have a wcf service hosted in IIS. We used basicHttpBinding and implemented a UserNamePasswordValidator for the custom authentication.

    However, we have issues when the WCF is consumed with a asmx client.

    An error occurred when verifying security for the message.

    (because asmx client can only work basicHttpBinding with transport security. basic authentication is disabled.)

    Here is my security config

     <security mode="TransportWithMessageCredential"> <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security>

    what are the solutions? We thought of using a simple Message Header for the authentication, however we don’t want to pass the credentials in the parameters of the method call

    var s = new service.TaskService(); s.GetSomething(credential, TaskNumber); //not nice...
    • Edited by

      Tuesday, June 4, 2013 7:58 AM

Answers

  • Maybe the following links can help you to sort out what the problem is: http://stackoverflow.com/questions/3765212/an-error-occurred-when-verifying-security-for-the-message

    http://blogs.microsoft.co.il/blogs/urig/archive/2011/01/23/wcf-quot-an-error-occurred-when-verifying-security-for-the-message-quot-and-service-security-audit.aspx

    Like I wrote before, you should be able to use a UserNamePasswordValidator with basicHttpBinding by using the Message security mode with a certificate or the TransportWithMessageCredential security mode with SSL.

    • Edited by
      Magnus (MM8)MVP
      Tuesday, June 4, 2013 2:22 PM
    • Marked as answer by
      Haixia_Xie
      Tuesday, June 11, 2013 7:43 AM
    • Marked as answer by
      Haixia_Xie
      Tuesday, June 11, 2013 7:43 AM
  • Remove From My Forums
  • Question

  • Hello,

    We have a wcf service hosted in IIS. We used basicHttpBinding and implemented a UserNamePasswordValidator for the custom authentication.

    However, we have issues when the WCF is consumed with a asmx client.

    An error occurred when verifying security for the message.

    (because asmx client can only work basicHttpBinding with transport security. basic authentication is disabled.)

    Here is my security config

     <security mode="TransportWithMessageCredential"> <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security>

    what are the solutions? We thought of using a simple Message Header for the authentication, however we don’t want to pass the credentials in the parameters of the method call

    var s = new service.TaskService(); s.GetSomething(credential, TaskNumber); //not nice...
    • Edited by

      Tuesday, June 4, 2013 7:58 AM

Answers

  • Maybe the following links can help you to sort out what the problem is: http://stackoverflow.com/questions/3765212/an-error-occurred-when-verifying-security-for-the-message

    http://blogs.microsoft.co.il/blogs/urig/archive/2011/01/23/wcf-quot-an-error-occurred-when-verifying-security-for-the-message-quot-and-service-security-audit.aspx

    Like I wrote before, you should be able to use a UserNamePasswordValidator with basicHttpBinding by using the Message security mode with a certificate or the TransportWithMessageCredential security mode with SSL.

    • Edited by
      Magnus (MM8)MVP
      Tuesday, June 4, 2013 2:22 PM
    • Marked as answer by
      Haixia_Xie
      Tuesday, June 11, 2013 7:43 AM
    • Marked as answer by
      Haixia_Xie
      Tuesday, June 11, 2013 7:43 AM

I have a problem connecting to my WCF service with clientCredentialType="UserName".

When I run the code below I get an error

FaultException: An error occurred when verifying security for the message.

When playing around with some of the binding values I also get Access is denied..

Fiddler says there is no authorization header and I cannot find the username or password in the request either.

Here are excerpts from my config:

 <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer> <services> <service name="InventoryServices.MobileAPI" behaviorConfiguration="customBehaviour"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="secureHttpBinding" contract="InventoryServices.IMobileAPI"/> <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> </service> </services> <behaviors> <serviceBehaviors> <behavior name="customBehaviour"> <serviceSecurityAudit auditLogLocation="Application" serviceAuthorizationAuditLevel="Failure" messageAuthenticationAuditLevel="Failure" suppressAuditFailure="true" /> <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> <serviceMetadata httpsGetEnabled="true"/> <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> <serviceDebug includeExceptionDetailInFaults="true"/> <serviceCredentials> <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="InventoryLibrary.Helpers.UserAuthentication,InventoryLibrary"/> </serviceCredentials> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> <bindings> <basicHttpBinding> <binding name="secureHttpBinding"> <security mode="TransportWithMessageCredential"> <transport clientCredentialType="Basic" proxyCredentialType="Basic" realm="MyRealm"/> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security> </binding> </basicHttpBinding> </bindings> 

My username/password validator looks like so:

 public class UserAuthentication : UserNamePasswordValidator { public override void Validate(string userName, string password) { EntitiesContext db = new EntitiesContext(); db.Logs.Add(new DomainModels.Log() { DateLogged = DateTime.Now, Message = "hit auth", Type = DomainModels.LogType.Info }); db.SaveChanges(); try { if (userName == "test" && password == "test123") { Console.WriteLine("Authentic User"); } } catch (Exception ex) { throw new FaultException("Unknown Username or Incorrect Password"); } } } 

I have this as a simple test on my service:

[OperationContract] [XmlSerializerFormat] void Test(); [PrincipalPermission(SecurityAction.Demand, Name = "test")] public void Test() { } 

I have a self signed SSL certificate on my server and I can access my service/metadata.

Then I have added a service reference in a console application, and attempt to connect to the service with this code below:

class Program { static void Main(string[] args) { Stuff.InitiateSSLTrust(); BasicHttpBinding binding = new BasicHttpBinding(); binding.Security.Mode = BasicHttpSecurityMode.Transport; binding.Security.Transport.Realm = "MyRealm"; ServiceReference1.MobileAPIClient serviceProxy = new ServiceReference1.MobileAPIClient(binding, new EndpointAddress("https://xx.xx.xx.xx/InventoryServices.MobileApi.svc")); serviceProxy.ClientCredentials.UserName.UserName = "test"; serviceProxy.ClientCredentials.UserName.Password = "test123"; try { var a = serviceProxy.Login("a", "b"); } catch (Exception ex) { var ex2 = ex; } } } public class Stuff { public static void InitiateSSLTrust() { try { //Change SSL checks so that all checks pass ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback( delegate { return true; } ); } catch (Exception ex) { } } } 

I’ve checked the event viewer on the server and this error appears with each request:

MessageSecurityException: Security processor was unable to find a security header in the message. This might be because the message is an unsecured fault or because there is a binding mismatch between the communicating parties. This can occur if the service is configured for security and the client is not using security.

I have a problem connecting to my WCF service with clientCredentialType="UserName".

When I run the code below I get an error

FaultException: An error occurred when verifying security for the message.

When playing around with some of the binding values I also get Access is denied..

Fiddler says there is no authorization header and I cannot find the username or password in the request either.

Here are excerpts from my config:

 <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer> <services> <service name="InventoryServices.MobileAPI" behaviorConfiguration="customBehaviour"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="secureHttpBinding" contract="InventoryServices.IMobileAPI"/> <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> </service> </services> <behaviors> <serviceBehaviors> <behavior name="customBehaviour"> <serviceSecurityAudit auditLogLocation="Application" serviceAuthorizationAuditLevel="Failure" messageAuthenticationAuditLevel="Failure" suppressAuditFailure="true" /> <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> <serviceMetadata httpsGetEnabled="true"/> <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> <serviceDebug includeExceptionDetailInFaults="true"/> <serviceCredentials> <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="InventoryLibrary.Helpers.UserAuthentication,InventoryLibrary"/> </serviceCredentials> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> <bindings> <basicHttpBinding> <binding name="secureHttpBinding"> <security mode="TransportWithMessageCredential"> <transport clientCredentialType="Basic" proxyCredentialType="Basic" realm="MyRealm"/> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security> </binding> </basicHttpBinding> </bindings> 

My username/password validator looks like so:

 public class UserAuthentication : UserNamePasswordValidator { public override void Validate(string userName, string password) { EntitiesContext db = new EntitiesContext(); db.Logs.Add(new DomainModels.Log() { DateLogged = DateTime.Now, Message = "hit auth", Type = DomainModels.LogType.Info }); db.SaveChanges(); try { if (userName == "test" && password == "test123") { Console.WriteLine("Authentic User"); } } catch (Exception ex) { throw new FaultException("Unknown Username or Incorrect Password"); } } } 

I have this as a simple test on my service:

[OperationContract] [XmlSerializerFormat] void Test(); [PrincipalPermission(SecurityAction.Demand, Name = "test")] public void Test() { } 

I have a self signed SSL certificate on my server and I can access my service/metadata.

Then I have added a service reference in a console application, and attempt to connect to the service with this code below:

class Program { static void Main(string[] args) { Stuff.InitiateSSLTrust(); BasicHttpBinding binding = new BasicHttpBinding(); binding.Security.Mode = BasicHttpSecurityMode.Transport; binding.Security.Transport.Realm = "MyRealm"; ServiceReference1.MobileAPIClient serviceProxy = new ServiceReference1.MobileAPIClient(binding, new EndpointAddress("https://xx.xx.xx.xx/InventoryServices.MobileApi.svc")); serviceProxy.ClientCredentials.UserName.UserName = "test"; serviceProxy.ClientCredentials.UserName.Password = "test123"; try { var a = serviceProxy.Login("a", "b"); } catch (Exception ex) { var ex2 = ex; } } } public class Stuff { public static void InitiateSSLTrust() { try { //Change SSL checks so that all checks pass ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback( delegate { return true; } ); } catch (Exception ex) { } } } 

I’ve checked the event viewer on the server and this error appears with each request:

MessageSecurityException: Security processor was unable to find a security header in the message. This might be because the message is an unsecured fault or because there is a binding mismatch between the communicating parties. This can occur if the service is configured for security and the client is not using security.

Просмотров 6.2к. Опубликовано 08.04.2021
Обновлено 21.01.2022

Так сложилось исторически, что мы стали дилером компании RusGuard чуть ли не сразу после её образования. Причиной тому было то, что компания была основана бывшими сотрудниками другой компании – Legos, с которой мы довольно плотно работали. Дилерами стали, но сотрудничество как-то не задалось – инсталляций не было, только продавали оборудование несколько раз. Позже решил посерьёзнее познакомиться с тем, что же у ребят получилось. Первый критерий оценки очень простой – беспроблемная установка софта. Скачал дистрибутив, попробовал поставить – не вышло. Отложил до лучших времён.

Справедливости ради скажу, что та же история произошла и с CARDDEX – попробовал, словил кучу проблем, отложил. Логика такая – разобраться можно со всем, но зачем лишние проблемы на объекте, если есть гораздо более стабильные решения.

Содержание

  1. Первое знакомство
  2. Установка
  3. Проблемы с NFC и BLE
  4. Настройка
  5. Опытная эксплуатация

Первое знакомство

Недавно обратился клиент с просьбой установить ему СКУД со считывателями, работающими по технологии BLE и NFC. И сам же клиент нашёл такой считыватель R15-Multi у RusGuard, поскольку первоначально предложенный мной считыватель SIGUR MR1 BLE был заметно дороже. К тому же софт у SIGUR стоит денег, а у RusGuard предоставляется бесплатно.

Решено – RusGuard-у на объекте быть! Будет интересно поразбираться с новым оборудованием. Связался с поставщиком, обсудили возникшие вопросы об автономной и сетевой работе, сформировали комплект оборудования и сделали заказ.

Установка

Сроки поджимали, поэтому пощупать оборудование в офисе не удалось – сразу приступили к монтажу. Решил потренироваться в установке на своём ноутбуке. Недавно менял диск и ставил заново ОС, поэтому компьютер, практически, девственно чист. Не ожидая подвоха скачал дистрибутив (3,7 Гб вместе с SQL Server) и запустил установку. При запуске было сказано, что .NET Framework 4.6 в системе присутствует, а IIS отсутствует, поэтому будет установлен автоматически. Далее выбрал вариант с установкой SQL ServerExpress 2014, задал имена и пароли, какие попросили, но чуда не случилось – установка завершилась с ошибкой. Попробовал ещё раз – то же самое.

Когда ничего не получается, самое время читать инструкцию или смотреть видеоролик, поэтому полез смотреть ролик про установку. Первое требование – компьютер должен быть “чистым”. Почти так и есть. Следующая возможная проблема – имя компьютера. Почему-то дефолтные виндовые имена – это не есть “хорошо”. Имя действительно было дефолтное – поменял, не помогло. Включил вручную ISS, хотя об этом в ролике и не было, и повторил попытку – не помогло. Посмотрел ролик дальше и увидел там, что необходимо установить ещё и .NET Framework 3.5, а иначе SQL Server не установится. Установил фреймворк, запустил снова инсталлятор и SQL Server таки встал! Но рано радовался, т.к. установка опять завершилась с ошибкой – что-то там с правами. Запустил инсталлятор снова и выбрал вариант с уже установленным SQL Server. На следующем шаге инсталлятор выдал ошибку авторизации и предложил ввести правильный пароль пользователя sa. Ввёл. Инсталлятор его принял и на следующем шаге попросил ввести пароль пользователя user для сервера отчётов. Не понял, что за пользователь такой, но нашёл в документации, что на сервер отчётов вход производится под пользователем ОС и ввёл свои логин и пароль. Инсталлятор ещё пошуршал и, о чудо – установка завершилась успешно!

Что хочется сказать? Не надо так! Почему установка происходит с такими сложностями? Почему нельзя всё автоматизировать? Чем плохи дефолтные виндовые имена? Почему наличие в системе .NET Framework 4.6 проверяется, а .NET Framework 3.5 нет, хотя он необходим?

Взять те же SIGUR или PERCo – в них установка происходит на порядок проще. Ну и фраза “ПО может не установиться”, часто звучащая в ролике, несколько настораживает. Сделайте так, чтобы устанавливалось! Хороший и правильный дистрибутив должен содержать в себе все необходимые компоненты, проверять соблюдение всех требований и не допускать возникновения ошибок в процессе установки.

На объекте пришлось устанавливать на Windows Server 2019. В принципе всё прошло гладко, кроме того, что сначала пытался запускать инсталлятор из папки с Рабочего стола, но из-за длинных путей SQL Server устанавливаться не хотел. Опять же, без объяснения причин. По совету тех.поддержки попробовал установить его отдельно и только тогда увидел причину ошибки установки.

Проблемы с NFC и BLE

Проблемы эти проявились в процессе настройки, но чтобы не отвлекаться от темы настройки в следующей части, расскажу про них сразу. Так вот, оказалось, что несмотря на информацию в описании считывателя R15-Multi, приложения под iOS нет в принципе. Оно, как-бы в разработке, но сроки выхода неизвестны. Из этого следует то, что технология BLE для iPhone пока недоступна. Использовать можно только NFC, но, поскольку прямой доступ к чипу NFC в iOS закрыт, то приходится делать это через ApplePay, используя в качестве идентификатора ID какой-нибудь банковской карты. Это несколько смущает пользователей. т.к. при поднесении смартфона к считывателю они видят тот же интерфейс, что и при оплате через терминал на кассе. Многие опасаются, а не снимут ли у них со счёта деньги.

На смартфонах с Android тоже можно пользоваться Google Pay, но есть и приложение, называется RusGuard Key. В нём настраивается тип идентификатора (3 варианта) и каким образом должна происходить идентификация – через NFC или BLE или и так и так и если через BLE, то автоматически или вручную. Автоматический режим работы BLE подразумевает разблокировку двери сразу, как только смартфон попадает в зону действия считывателя. И вот это второй EPIC FAIL – в отличие, например, от считывателя SIGUR MR1 BLE, дальность действия считывателя R15-Multi не настраивается! То есть дверь открывается с расстояния 5-6 метров. А может и больше – это уже зависит от модуля Bluetooth смартфона. Ручной режим подразумевает отправку идентификатора не постоянно, а только после сработки акселерометра, то есть смартфон надо потрясти или покрутить. Это уже лучше, но всё равно не очень хорошо, потому что эти настройки делаются в приложении на смартфоне пользователя, а такие вещи лучше делать на стороне сервера.

Ну и финальный аккорд – не на всех Android-смартфонах приложение работает корректно. Это понятно – производителей таких смартфонов много, версий систем в них установленных, учитывая кастомные прошивки, ещё больше, ну и различные настройки безопасности и энергосбережения тоже вносят свой вклад. Винить разработчиков RusGuard тут не стоит – об этом честно упомянуто в описании продукта.

Настройка

Честно говоря, сначала софт не порадовал. Хотя и у аналогичных продуктов конкурентов интерфейс, прямо скажем, оригинальный. Так что придираться не буду. Хорошо то, что не глючит. Настроек много – чувствуется, что система масштабная и гибкая. После нескольких часов работы и к интерфейсу привыкаешь.

Автопоиском нашёл контроллер, добавил в систему, выбрал нужный тип точки доступа – Две двери и поменял схему индикации. Что SIGUR, что RusGuard используют по умолчанию каки-то странные настройки, а нужно то самое простое – чтобы в закрытом состоянии на считывателе горел красный индикатор, а при отпирании замка – зелёный. В SIGUR-е с индикацией всё сложно. Здесь же – из выпадающего списка значений параметра Схема индикации выбираем пункт Дежурный красный и всё работает, как надо.

На вкладке Дверь 1 и Дверь 2 нужно поменять протокол считывателя на RBus, чтобы настраивать его параметры из ПО.

Нужно было настроить систему на работу с NFC и BLE и c брелками форматов Mifare и EM-Marine, благо считыватель R15-Multi всеформатный. Для настройки нужно зайти в раздел Конфигурация системы, найти в дереве пункт Настройки Mifare и добавить профили для идентификаторов Mifare, приложения RusGuard Key и Apple/Google Pay. Профили для приложения и платёжных систем не настраиваются, а профиль для идентификаторов нужно чуть подправить. Усиленная защита не требуется, к тому же настольного считывателя нет, поэтому эмиссию идентификаторов Mifare производить не нужно, да и не получится. В параметре Режим аутентификации нужно выбрать вариант Защищённые данные или UID.

Теперь нужно в настройках контроллера добавить эти профили в список, причём в правильной последовательности: идентификатор, приложение, платёжная система. В нашем случае: Key, App, Pay. Далее, на вкладке RBus нужно сменить режим аутентификации на вариант Настройки профиля и там же ниже выбрать Разрешённые типы карт.

Настройка RusGuard

Следующий этап – импорт сотрудников из предоставленного XLS-файла. В основном ПО такой функции нет, но есть специальная утилита UniversalImport. Файл был специальным образом подготовлен – каждое поле в отдельном столбце и успешно импортирован в БД. После импорта сотрудников нужно было дать им право доступа. Это делается либо персонально, либо наследуется из настроек отдела. Хотел завести один родительский отдел и перенести все остальные в него, чтобы сделать назначение прав доступа парой кликов, но не вышло – в ПО нельзя редактировать структуру компании. Отделы можно только удалять и добавлять. Пришлось задавать права доступа для каждого отдела.

Опытная эксплуатация

Через пару дней после запуска в работу один из считывателей странным образом заглючил – перестал читать Mifare и NFC c BLE. С EM-Marine проблем не было. Нормальная работа восстановилась после перезапуска контроллера и считывателей путём сброса питания. Тех.поддержка посоветовала прошить считыватели свежей прошивкой и понаблюдать дальше, а если сбои повторятся, то отправлять к ним в ремонт или для замены. Продолжаем наблюдение.

When I try to call a WCF service I am getting the following message «An error occurred when verifying security for the message.»

When I remove the custom authenication the service works no problem. I can’t figure out though what I have misconfigured in my web.config. Any insight would be appreciated.

  <system.serviceModel>
     <services>
        <service behaviorConfiguration="NAThriveExtensions.nableAPIBehavior"
          name="NAThriveExtensions.nableAPI">
           <endpoint 
             address="" 
             binding="basicHttpBinding" 
             bindingConfiguration="basicHttpBinding_Secure"
             contract="NAThriveExtensions.InableAPI">
           </endpoint>
           <endpoint 
             address="mex" 
             binding="mexHttpsBinding" 
             contract="IMetadataExchange" />
        </service>
     </services>
     <behaviors>
        <serviceBehaviors>
          <behavior name="NAThriveExtensions.nableAPIBehavior">
            <serviceMetadata httpsGetEnabled="true" />
            <serviceDebug includeExceptionDetailInFaults="false" />
            <serviceCredentials>
              <userNameAuthentication 
                userNamePasswordValidationMode="Custom" 
              customUserNamePasswordValidatorType= "NAThriveExtensions.Authentication, NAThriveExtensions" />
            </serviceCredentials>
          </behavior>
        </serviceBehaviors>
     </behaviors>
     <bindings>
       <basicHttpBinding>
         <binding name="basicHttpBinding_Secure">
           <security mode="TransportWithMessageCredential">
             <message clientCredentialType="UserName"/>
           </security>
         </binding>
       </basicHttpBinding>
     </bindings>
  </system.serviceModel>

asked Sep 21, 2010 at 23:26

Matt Klepeis's user avatar

Matt KlepeisMatt Klepeis

1,7241 gold badge14 silver badges25 bronze badges

I was getting this same error message and it turned out to be due to a time difference between my workstation machine and the server hosting the WCF service. The server was about 10 minutes behind my machine and WCF security doesn’t seem to like that very much.

To find the root problem I turned on serviceSecurityAuditing in the server’s config file. Add the following to the configuration/system.serviceModel/behaviors/serviceBehaviors/behavior section for your service:

<serviceSecurityAudit 
    auditLogLocation="Application" 
    serviceAuthorizationAuditLevel="Failure" 
    messageAuthenticationAuditLevel="Failure" 
    suppressAuditFailure="true"/>

The following site was helpful in figuring this out:

http://blogs.microsoft.co.il/blogs/urig/archive/2011/01/23/wcf-quot-an-error-occurred-when-verifying-security-for-the-message-quot-and-service-security-audit.aspx

answered Mar 7, 2013 at 23:10

Sam's user avatar

3

Another cause of this message is when some of your machines are not synchronized in time. WCF, by default, allows a five-minute gap; beyond this, it throws an error if things are out of synch.

The solution is to synch all your machines. time.windows.com is notorious for not working, so I suggest using something else. (If you’re in a corporate environment, a local domain controller may be the correct choice here.)

answered Jan 31, 2014 at 16:30

ashes999's user avatar

ashes999ashes999

9,89715 gold badges72 silver badges120 bronze badges

3

This ended up being an problem on the consuming side, not with the service itself. Software AG’s webMethods 8 was consuming this server but there was no Security Handler added to the service so the credentials were not being added to the header thus resulting the in the aforementioned error.

answered Oct 8, 2010 at 16:24

Matt Klepeis's user avatar

Matt KlepeisMatt Klepeis

1,7241 gold badge14 silver badges25 bronze badges

2

I had a similar issue.
I was building my datetime formatted strings using my local time, but my service/server was expecting GMT.

I needed to get the GMT time (JAVA):

final Date currentTime = new Date();    
final SimpleDateFormat sdf = 
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.000Z'");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(sdf.format(currentTime));

answered Mar 17, 2019 at 20:42

Pablo Chvx's user avatar

Pablo ChvxPablo Chvx

1,80918 silver badges31 bronze badges

I was getting the same error on my IIS 7.5 server. I forgot to add Read permission on the certificate’s private key to the app pool virtual account (e.g. IIS AppPoolASP.NET v4.0).

For info, whilst testing various combinations of accounts and permissions, I noticed that the app pool needed to be recycled to lose access to the key, once it had been retrieved once.

(0x80131501 — An error occurred when verifying security for the message.)

answered Apr 8, 2013 at 5:57

ssg31415926's user avatar

ssg31415926ssg31415926

1,0372 gold badges13 silver badges21 bronze badges

I was getting the same error and none of the above help for me.

I finally tracked it down to connectionStrings in a parent web.config (my service was deployed to a child application to an admin site).

Yes sounds ridiculous, but as soon as I wrapped the connection strings in the parent web.config with a location element all started working.

For clarity, in parent web.config, I changed this

<connectionStrings>
    <add name="..." />
</connectionStrings>

to this

<location path="." inheritInChildApplications="false">
    <connectionStrings>
        <add name="..." />
    </connectionStrings>
</location>

Note this error also resulted in this very unhelpful serviceSecurityAudit log message:

Message authentication failed.
Service: …
Action: http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT
ClientIdentity:
ActivityId:
ArgumentNullException: Value cannot be null.
Parameter name: manager

answered Sep 6, 2016 at 12:30

Dan's user avatar

I was getting the same error. I forgot to add Read permission on the membership database aspnetdb to the (IIS APPPOOLDefaultAppPool).

Message authentication failed. Service:….

Action: http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT

ClientIdentity:

ActivityId:

SqlException: Cannot open database «aspnetdb» requested by the login. The login failed.

Login failed for user ‘IIS
APPPOOLDefaultAppPool’.

Community's user avatar

answered Dec 19, 2016 at 7:24

Yasser Mohammed's user avatar

The username and password is the server you connection,not your
system login username and password.

answered Dec 23, 2015 at 9:05

MapleStory's user avatar

MapleStoryMapleStory

6183 gold badges11 silver badges21 bronze badges

Студворк — интернет-сервис помощи студентам

Здравствуйте.
У меня wcf сервис в виде службы.
Конфигурация сервера:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<configuration>
<connectionStrings>
    <add name="dbAuthentication" providerName="System.Data.SqlClient" connectionString="Data Source = IVANOVAAIVANOV; User ID=fsync; Password=mt043384; Initial Catalog = GTP"  />
  </connectionStrings>
<system.web>
    <membership defaultProvider="DefaultMembershipProvider" >
      <providers>
        <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="dbAuthentication" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
      </providers>
    </membership>
    <roleManager enabled="true" defaultProvider="DefaultRoleProvider">
      <providers>
        <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      </providers>
    </roleManager>
  </system.web>
<system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        <serviceCredentials>
          <userNameAuthentication    membershipProviderName="DefaultMembershipProvider"/>
        </serviceCredentials>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="webHttpBehavior">
          <webHttp />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <services>
      <service name="AppServer.ServiceFacade">
        <endpoint address="" binding="customBinding" bindingConfiguration="custBinding" contract="AppServer.IServiceFacade">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        <endpoint address="" binding="webHttpBinding" behaviorConfiguration="webHttpBehavior" contract="AppServer.IClientAccessPolicy" />
        
        <host>
          <baseAddresses>
            <add baseAddress="net.tcp://localhost:4504/ServiceFacade" />
            <add baseAddress="http://localhost:80" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <bindings>
      <basicHttpBinding>
        <binding name="LongTimeout" closeTimeout="01:00:00" openTimeout="01:00:00" receiveTimeout="01:00:00" sendTimeout="01:00:00" />
        <binding name="MyBasicHttpBinding" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
      </binding>
      </basicHttpBinding>
      <netTcpBinding>
        <binding name="tcpBinding" closeTimeout="00:10:00" openTimeout="00:1:00" receiveTimeout="00:30:00" sendTimeout="00:30:00" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
          <!--portSharingEnabled="true"-->
          <readerQuotas maxDepth="100" maxArrayLength="10485760" maxBytesPerRead="2147483647" maxStringContentLength="2147483647" />
          <security />
        </binding>
      </netTcpBinding>
    <customBinding>
      <binding name="custBinding" closeTimeout="00:10:00" openTimeout="00:1:00" receiveTimeout="00:30:00" sendTimeout="00:30:00">
          <!--portSharingEnabled="true"-->
          <!--<readerQuotas maxDepth="100" maxArrayLength="10485760" maxBytesPerRead="2147483647" maxStringContentLength="2147483647" />-->
          <security authenticationMode="UserNameOverTransport"  allowInsecureTransport="true" includeTimestamp="true"/>
        <tcpTransport maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/>
        </binding>
   
    </customBinding>
    </bindings>
  </system.serviceModel>
</configuration>

Конфигурация клиента:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<configuration>
    <system.serviceModel>
        <bindings>
            <customBinding>
                <binding name="NetTcpBinding_IServiceFacade" >
                    <binaryMessageEncoding  />
                    <tcpTransport  maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
                  
                </binding>
            </customBinding>
        </bindings>
        <client>
            <endpoint address="net.tcp://localhost:4504/ServiceFacade" binding="customBinding"
                bindingConfiguration="NetTcpBinding_IServiceFacade" contract="ServiceReference.IServiceFacade"
                name="NetTcpBinding_IServiceFacade" />
        </client>
    </system.serviceModel>
</configuration>

На клиенте устанавливаю Username и Password. При вызове любого контракта из фасада сервера, на клиенте летит исключение «Ошибка при проверке безопасности сообщения». Подскажите в чем проблема. Спасибо.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private async void LoginWithUsernamePassword()
    {
      ClientProvider.CurrentClient.ClientCredentials.UserName.UserName = Username;
      ClientProvider.CurrentClient.ClientCredentials.UserName.Password = Password;
      //IsBusy = true;
      //BusyContent = "Производится вход в систему...";
      //ClientWrapper.CurrentUser = await ClientWrapper.Instance.TaskAsyncLogin(Username, Password);
      //if (!ClientWrapper.CurrentUser.IsAuth)
      //  AuthResult = $"Неверная пара логин или пароль:nUsername: [{Username}]nPassword: [{Password}]";
      //else if (IsRemember)
      //  CreateCookies();
 
      //IsBusy = false;
    }

Добавлено через 7 часов 44 минуты
В общем, вроде понял почему — в binding, на клиенте, необходимо добавить

XML
1
<security authenticationMode="UserNameOverTransport"  allowInsecureTransport="true" includeTimestamp="true"/>

На проблема в том, что в silverlight allowInsecureTransport=»true» не видит. А без данного атрибута летит исключение.
Как настроить аутентификацию при помощи дефолтных провайдеров в связке wcf сервер и silverlight клиент остается открытым

Когда я пытаюсь вызвать службу WCF, я получаю следующее сообщение: «Произошла ошибка при проверке безопасности сообщения».

Когда я удаляю пользовательскую аутентификацию, служба работает без проблем. Я не могу понять, что я неправильно сконфигурировал в своем web.config. Любое понимание будет оценено.

  <system.serviceModel>
     <services>
        <service behaviorConfiguration="NAThriveExtensions.nableAPIBehavior"
          name="NAThriveExtensions.nableAPI">
           <endpoint 
             address="" 
             binding="basicHttpBinding" 
             bindingConfiguration="basicHttpBinding_Secure"
             contract="NAThriveExtensions.InableAPI">
           </endpoint>
           <endpoint 
             address="mex" 
             binding="mexHttpsBinding" 
             contract="IMetadataExchange" />
        </service>
     </services>
     <behaviors>
        <serviceBehaviors>
          <behavior name="NAThriveExtensions.nableAPIBehavior">
            <serviceMetadata httpsGetEnabled="true" />
            <serviceDebug includeExceptionDetailInFaults="false" />
            <serviceCredentials>
              <userNameAuthentication 
                userNamePasswordValidationMode="Custom" 
              customUserNamePasswordValidatorType= "NAThriveExtensions.Authentication, NAThriveExtensions" />
            </serviceCredentials>
          </behavior>
        </serviceBehaviors>
     </behaviors>
     <bindings>
       <basicHttpBinding>
         <binding name="basicHttpBinding_Secure">
           <security mode="TransportWithMessageCredential">
             <message clientCredentialType="UserName"/>
           </security>
         </binding>
       </basicHttpBinding>
     </bindings>
  </system.serviceModel>

8 ответов

Лучший ответ

В конечном итоге это стало проблемой для потребителя, а не для самой службы. WebMethods 8 компании Software AG использовала этот сервер, но к службе не был добавлен обработчик безопасности, поэтому учетные данные не добавлялись в заголовок, что приводило к вышеупомянутой ошибке.


7

Matt Klepeis
8 Окт 2010 в 20:24

Я получал такое же сообщение об ошибке, и это оказалось из-за разницы во времени между моей рабочей станцией и сервером, на котором размещена служба WCF. Сервер отставал от моей машины примерно на 10 минут, и безопасности WCF это, похоже, не очень нравится.

Чтобы найти основную проблему, я включил serviceSecurityAuditing в файле конфигурации сервера. Добавьте следующее в раздел конфигурации / system.serviceModel / behavior / serviceBehaviors / behavior для своей службы:

<serviceSecurityAudit 
    auditLogLocation="Application" 
    serviceAuthorizationAuditLevel="Failure" 
    messageAuthenticationAuditLevel="Failure" 
    suppressAuditFailure="true"/>

Следующий сайт помог разобраться в этом:

http://blogs.microsoft.co.il/blogs/urig/archive/2011/01/23/wcf-quot-an-error-occurred-when-verifying-security-for-the-message-quot-and- сервис-безопасность-audit.aspx


40

Sam
8 Мар 2013 в 03:10

Другая причина этого сообщения — когда некоторые из ваших компьютеров не синхронизированы во времени. WCF по умолчанию допускает пятиминутный перерыв; помимо этого, он выдает ошибку, если что-то не синхронизируется.

Решение состоит в том, чтобы синхронизировать все ваши машины. time.windows.com печально известен тем, что не работает, поэтому я предлагаю использовать что-нибудь другое. (Если вы работаете в корпоративной среде, здесь может быть правильным выбором локальный контроллер домена.)


19

ashes999
31 Янв 2014 в 20:30

У меня была аналогичная проблема. Я создавал строки в формате datetime, используя мое местное время , но моя служба / сервер ожидала GMT .

Мне нужно было получить время по Гринвичу (JAVA):

final Date currentTime = new Date();    
final SimpleDateFormat sdf = 
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.000Z'");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(sdf.format(currentTime));


1

Pablo Chvx
17 Мар 2019 в 23:42

Я получал ту же ошибку на своем сервере IIS 7.5. Я забыл добавить разрешение на чтение закрытого ключа сертификата в пул приложений виртуальная учетная запись (например, IIS AppPool ASP.NET v4.0).

Для информации, при тестировании различных комбинаций учетных записей и разрешений я заметил, что пул приложений необходимо переработать, чтобы потерять доступ к ключу после того, как он был получен один раз.

(0x80131501 — Произошла ошибка при проверке безопасности сообщения.)


0

ssg31415926
8 Апр 2013 в 09:57

Я получал ту же ошибку, и ничего из вышеперечисленного мне не помогло.

Я наконец отследил это до connectionStrings в родительском файле web.config (моя служба была развернута в дочернем приложении на сайте администратора).

Да, звучит смешно, но как только я обернул строки подключения в родительский файл web.config элементом местоположения, все заработало.

Для ясности в родительском файле web.config я изменил это

<connectionStrings>
    <add name="..." />
</connectionStrings>

К этому

<location path="." inheritInChildApplications="false">
    <connectionStrings>
        <add name="..." />
    </connectionStrings>
</location>

Обратите внимание, что эта ошибка также привела к очень бесполезному serviceSecurityAudit сообщение журнала:

Ошибка аутентификации сообщения.
Сервис: …
Действие: http://schemas.xmlsoap.org/ws/2005/02 / trust / RST / SCT
ClientIdentity:
ActivityId:
ArgumentNullException: значение не может быть нулевым.
Название параметра: менеджер

Я получал ту же ошибку. Я забыл добавить разрешение на чтение базы данных членства aspnetdb в (IIS APPPOOL DefaultAppPool).

Ошибка аутентификации сообщения. Обслуживание:….

Действие: http://schemas.xmlsoap.org/ws/2005/ 02 / trust / RST / SCT

ClientIdentity:

ActivityId:

SqlException: не удается открыть базу данных «aspnetdb», запрошенную при входе в систему. Не удалось войти в систему.

Ошибка входа для пользователя IIS APPPOOL DefaultAppPool.


0

Community
20 Июн 2020 в 12:12

Имя пользователя и пароль — это сервер, к которому вы подключаетесь , а не ваш имя пользователя и пароль для входа в систему.


-4

MapleStory
23 Дек 2015 в 12:05

Произошла ошибка при проверке безопасности сообщения

когда я пытаюсь вызвать службу WCF я получаю следующее сообщение «произошла ошибка при проверке безопасности сообщения.»

когда я удаляю пользовательскую аутентификацию, служба работает без проблем. Я не могу понять, что я неправильно сконфигурировал в своей сети.конфиг. Любое понимание будет оценено.

  <system.serviceModel>
     <services>
        <service behaviorConfiguration="NAThriveExtensions.nableAPIBehavior"
          name="NAThriveExtensions.nableAPI">
           <endpoint 
             address="" 
             binding="basicHttpBinding" 
             bindingConfiguration="basicHttpBinding_Secure"
             contract="NAThriveExtensions.InableAPI">
           </endpoint>
           <endpoint 
             address="mex" 
             binding="mexHttpsBinding" 
             contract="IMetadataExchange" />
        </service>
     </services>
     <behaviors>
        <serviceBehaviors>
          <behavior name="NAThriveExtensions.nableAPIBehavior">
            <serviceMetadata httpsGetEnabled="true" />
            <serviceDebug includeExceptionDetailInFaults="false" />
            <serviceCredentials>
              <userNameAuthentication 
                userNamePasswordValidationMode="Custom" 
              customUserNamePasswordValidatorType= "NAThriveExtensions.Authentication, NAThriveExtensions" />
            </serviceCredentials>
          </behavior>
        </serviceBehaviors>
     </behaviors>
     <bindings>
       <basicHttpBinding>
         <binding name="basicHttpBinding_Secure">
           <security mode="TransportWithMessageCredential">
             <message clientCredentialType="UserName"/>
           </security>
         </binding>
       </basicHttpBinding>
     </bindings>
  </system.serviceModel>

7 ответов


Я получал это же сообщение об ошибке, и оказалось, что это связано с разницей во времени между моей рабочей станцией и сервером, на котором размещена служба WCF. Сервер был около 10 минут позади моей машины, и WCF security, похоже, не очень нравится.

чтобы найти корневую проблему, я включил serviceSecurityAuditing в конфигурационном файле сервера. Добавьте в конфигурацию/систему следующее.serviceModel / поведение / serviceBehaviors / раздел поведение для вашего обслуживания:

<serviceSecurityAudit 
    auditLogLocation="Application" 
    serviceAuthorizationAuditLevel="Failure" 
    messageAuthenticationAuditLevel="Failure" 
    suppressAuditFailure="true"/>

следующий сайт был полезен в выяснении этого:

http://blogs.microsoft.co.il/blogs/urig/archive/2011/01/23/wcf-quot-an-error-occurred-when-verifying-security-for-the-message-quot-and-service-security-audit.aspx


другая причина это сообщение, когда некоторые из ваших машин не синхронизированы во времени. WCF по умолчанию допускает пятиминутный разрыв; кроме того, он выдает ошибку, если что-то не синхронизировано.

раствор для синхронизации всех ваших машин. time.windows.com славится тем, что не работает, поэтому я предлагаю использовать что-то другое. (Если вы находитесь в корпоративной среде, локальный контроллер домена может быть правильный выбор.)


Это оказалось проблемой на стороне потребления, а не с самой службой. Webmethods 8 программного обеспечения AG потреблял этот сервер, но не было никакого обработчика безопасности, добавленного к службе, поэтому учетные данные не были добавлены в заголовок, что привело к вышеупомянутой ошибке.


Я получаю ту же ошибку на моем сервере IIS 7.5. Я забыл добавить разрешение на чтение на закрытый ключ сертификата в виртуальный аккаунт пула приложений (например, IIS AppPoolASP.NET v4.0).

для информации, тестируя различные комбинации учетных записей и разрешений, я заметил, что пул приложений необходимо переработать, чтобы потерять доступ к ключу, как только он был извлечен один раз.

(0x80131501-произошла ошибка при проверке безопасности сообщение.)


Я получал ту же ошибку, и ни одна из вышеперечисленных помощь для меня.

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

Да, звучит смешно, но как только я завернул строки подключения в родительской сети.config с элементом location все начали работать.

для ясности, в родительской сети.config я изменил это

<connectionStrings>
    <add name="..." />
</connectionStrings>

в это

<location path="." inheritInChildApplications="false">
    <connectionStrings>
        <add name="..." />
    </connectionStrings>
</location>

обратите внимание, что эта ошибка также привела к этому очень бесполезному serviceSecurityAudit сообщение:

ошибка проверки подлинности сообщения.
Услуга. :..
Действие:http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT
ClientIdentity:
Значение activityid:
ArgumentNullException: значение не может быть null.
Имя параметра: менеджер


Я получал ту же ошибку. Я забыл добавить разрешение на чтение в базу данных членства aspnetdb в (IIS APPPOOLDefaultAppPool).

ошибка проверки подлинности сообщения. Услуга.:…

действие:http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT

ClientIdentity:

значение activityid:

SqlException: не удается открыть базу данных «aspnetdb», запрошенную логином. Ошибка входа в систему.

ошибка входа в систему для IIS пользователя
Пула средством’.


имя пользователя и пароль сервер подключения,а не ваши
имя пользователя и пароль для входа в систему.


Понравилась статья? Поделить с друзьями:
  • Ошибка при проверки баланса на мтс
  • Ошибка при проверки баз и модулей программы
  • Ошибка при проверке цепочки сертификатов электронный бюджет
  • Ошибка при проверке цепочки сертификатов фнс
  • Ошибка при проверке цепочки сертификатов суфд