Acceptsecuritycontext failed the windows error code

AcceptSecurityContext function (sspi.h)

The AcceptSecurityContext (CredSSP) function lets the server component of a transport application establish a security context between the server and a remote client. The remote client calls the InitializeSecurityContext (CredSSP) function to start the process of establishing a security context. The server can require one or more reply tokens from the remote client to complete establishing the security context.

Syntax

Parameters

A handle to the server credentials. To retrieve this handle, the server calls the AcquireCredentialsHandle (CredSSP) function with either the SECPKG_CRED_INBOUND or SECPKG_CRED_BOTH flag set.

A pointer to a CtxtHandle structure. On the first call to AcceptSecurityContext (CredSSP), this pointer is NULL. On subsequent calls, phContext specifies the partially formed context returned in the phNewContext parameter by the first call.

A pointer to a SecBufferDesc structure generated by a client call to InitializeSecurityContext (CredSSP). The structure contains the input buffer descriptor.

The first buffer must be of type SECBUFFER_TOKEN and contain the security token received from the client. The second buffer should be of type SECBUFFER_EMPTY.

-Bit flags that specify the attributes required by the server to establish the context. Bit flags can be combined by using bitwise-OR operations. This parameter can be one or more of the following values.

Value Meaning
ASC_REQ_ALLOCATE_MEMORY Credential Security Support Provider (CredSSP) will allocate output buffers. When you have finished using the output buffers, free them by calling the FreeContextBuffer function.
ASC_REQ_CONNECTION The security context will not handle formatting messages.
ASC_REQ_DELEGATE The server is allowed to impersonate the client. Ignore this flag for constrained delegation.
ASC_REQ_EXTENDED_ERROR When errors occur, the remote party will be notified.
ASC_REQ_REPLAY_DETECT Detect replayed packets.
ASC_REQ_SEQUENCE_DETECT Detect messages received out of sequence.
ASC_REQ_STREAM Support a stream-oriented connection.

В

For possible attribute flags and their meanings, see Context Requirements. Flags used for this parameter are prefixed with ASC_REQ, for example, ASC_REQ_DELEGATE.

The requested attributes may not be supported by the client. For more information, see the pfContextAttr parameter.

The data representation, such as byte ordering, on the target. This parameter can be either SECURITY_NATIVE_DREP or SECURITY_NETWORK_DREP.

A pointer to a CtxtHandle structure. On the first call to AcceptSecurityContext (CredSSP), this pointer receives the new context handle. On subsequent calls, phNewContext can be the same as the handle specified in the phContext parameter.

A pointer to a SecBufferDesc structure that contains the output buffer descriptor. This buffer is sent to the client for input into additional calls to InitializeSecurityContext (CredSSP). An output buffer may be generated even if the function returns SEC_E_OK. Any buffer generated must be sent back to the client application.

On output, this buffer receives a token for the security context. The token must be sent to the client. The function can also return a buffer of type SECBUFFER_EXTRA.

A pointer to a set of bit flags that indicate the attributes of the established context. For a description of the various attributes, see Context Requirements. Flags used for this parameter are prefixed with ASC_RET, for example, ASC_RET_DELEGATE.

Do not check for security-related attributes until the final function call returns successfully. Attribute flags not related to security, such as the ASC_RET_ALLOCATED_MEMORY flag, can be checked before the final return.

A pointer to a TimeStamp structure that receives the expiration time of the context. We recommend that the security package always return this value in local time.

Return value

This function returns one of the following values.

Return code/value Description
SEC_E_INCOMPLETE_MESSAGE 0x80090318L The function succeeded. The data in the input buffer is incomplete. The application must read additional data from the client and call AcceptSecurityContext (CredSSP) again.
SEC_E_INSUFFICIENT_MEMORY 0x80090300L The function failed. There is not enough memory available to complete the requested action.
SEC_E_INTERNAL_ERROR 0x80090304L The function failed. An error occurred that did not map to an SSPI error code.
SEC_E_INVALID_HANDLE 0x80100003L The function failed. The handle passed to the function is not valid.
SEC_E_INVALID_TOKEN 0x80090308L The function failed. The token passed to the function is not valid.
SEC_E_LOGON_DENIED 0x8009030CL The logon failed.
SEC_E_NO_AUTHENTICATING_AUTHORITY 0x80090311L The function failed. No authority could be contacted for authentication. This could be due to the following conditions:
  • The domain name of the authenticating party is incorrect.
  • The domain is unavailable.
  • The trust relationship has failed.
SEC_E_NO_CREDENTIALS 0x8009030EL The function failed. The credentials handle specified in the phCredential parameter is not valid.
SEC_E_OK 0x00000000L The function succeeded. The security context received from the client was accepted. If the function generated an output token, the token must be sent to the client process.
SEC_E_UNSUPPORTED_FUNCTION 0x80090302L The function failed. The fContextReq parameter specified a context attribute flag (ASC_REQ_DELEGATE or ASC_REQ_PROMPT_FOR_CREDS) that was not valid.
SEC_I_COMPLETE_AND_CONTINUE 0x00090314L The function succeeded. The server must call CompleteAuthToken and pass the output token to the client. The server must then wait for a return token from the client before making another call to AcceptSecurityContext (CredSSP).
SEC_I_COMPLETE_NEEDED 0x00090313L The function succeeded. The server must finish building the message from the client before calling CompleteAuthToken.
SEC_I_CONTINUE_NEEDED 0x00090312L The function succeeded. The server must send the output token to the client and wait for a returned token. The returned token should be passed in pInput for another call to AcceptSecurityContext (CredSSP).
Читайте также:  Iso образом для установки 64 битной версии windows 10 или новее

Remarks

The AcceptSecurityContext (CredSSP) function is the server counterpart to the InitializeSecurityContext (CredSSP) function.

When the server receives a request from a client, it uses the fContextReq parameter to specify what it requires of the session. In this fashion, a server can require that clients be capable of using a confidential or integrity-checked session; it can reject clients that cannot meet that demand. Alternatively, a server can require nothing; whatever the client requires or can provide is returned in the pfContextAttr parameter.

The fContextReq and pfContextAttr parameters are bitmasks that represent various context attributes. For a description of the various attributes, see Context Requirements.

After the security context has been established, the server application can use the QuerySecurityContextToken function to retrieve a handle to the user account to which the client certificate was mapped. Also, the server can use the ImpersonateSecurityContext function to impersonate the user.

Authentication to LDAP fails with AcceptSecurityContext error

Question & Answer

Question

After enabling Global Security to an LDAP and restarting the IBM WebSphere Application Server, the following error occurs on server startup: SECJ0352E: Could not get the users matching the pattern JoeUser because of the following exception javax.naming.AuthenticationException: [LDAP: error code 49 — 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece ]

Cause

Following instructions in the MustGather: Security problems, the trace.log shows the following:

[10/19/07 12:04:28:037 EDT] 7a39ad4c LdapRegistryI > getUsers
JoeUser
2
[10/19/07 12:04:28:037 EDT] 7a39ad4c LdapRegistryI > search
[10/19/07 12:04:28:037 EDT] 7a39ad4c LdapRegistryI d DN: DC=IBM,DC=COM
[10/19/07 12:04:28:037 EDT] 7a39ad4c LdapRegistryI d Search scope: 2
[10/19/07 12:04:28:037 EDT] 7a39ad4c LdapRegistryI d Filter: (&(CN=JoeUser)(objectcategory=user))
.
[10/19/07 12:04:28:047 EDT] 7a39ad4c LdapRegistryI A Fail connect to ldap://MyLdap.raleigh.ibm.com:389
[10/19/07 12:04:28:047 EDT] 7a39ad4c LdapRegistryI d javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece ]
.
[10/19/07 12:04:28:147 EDT] 7a39ad4c LdapRegistryI E SECJ0352E: Could not get the users matching the pattern JoeUser because of the following exception javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece ]
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3005)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2951)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2752)
at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2666)
at com.sun.jndi.ldap.LdapCtx. (LdapCtx.java:307)
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:190)
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:208)
at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:151)
at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:81)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:675)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:257)
at javax.naming.InitialContext.init(InitialContext.java:233)
at javax.naming.InitialContext. (InitialContext.java:209)
at javax.naming.directory.InitialDirContext. (InitialDirContext.java:94)
at com.ibm.ws.security.registry.ldap.LdapRegistryImpl.getDirContext(LdapRegistryImpl.java:2353)
at com.ibm.ws.security.registry.ldap.LdapRegistryImpl.search(LdapRegistryImpl.java:1850)

An LDAPSearch for the same user fails with:

ldapsearch -h MyLdap.raleigh.ibm.com -p 389 -b "DC=IBM,DC=COM" CN=JoeUser
ldap_search: Operations error
ldap_search: additional info: 00000000: LdapErr: DSID-0C090627, comment:
In order to perform this operation a successful bind must be completed
on the connection., data 0, vece

Answer

The problem is the LDAP is not setup for anonymous binds. To resolve this problem, either change the LDAP to allow anonymous binds, or specify a Bind Distinguished Name and Bind password in the WebSphere Application Server LDAP User Registry settings.

For more information about setting the Bind DN and Bind Password, see instructions 9 & 10 in the Configuring Lightweight Directory Access Protocol user registries topic.

Функция AcceptSecurityContext (общая)

Функция AcceptSecurityContext (General) позволяет компоненту сервера транспортного приложения устанавливать контекст безопасности между сервером и удаленным клиентом. Удаленный клиент использует функцию InitializeSecurityContext (General) для запуска процесса установки контекста безопасности. Серверу может потребоваться один или несколько маркеров ответа от удаленного клиента для завершения установки контекста безопасности.

Сведения об использовании этой функции с конкретным поставщиком поддержки безопасности (SSP) см. в следующих разделах.

Раздел Описание
AcceptSecurityContext (CredSSP) Позволяет компоненту сервера транспортного приложения устанавливать контекст безопасности между сервером и удаленным клиентом с помощью поставщика службы поддержки безопасности учетных данных (CredSSP).
AcceptSecurityContext (дайджест) Позволяет компоненту сервера транспортного приложения устанавливать контекст безопасности между сервером и удаленным клиентом, использующим дайджест.
AcceptSecurityContext (Kerberos) Позволяет компоненту сервера транспортного приложения устанавливать контекст безопасности между сервером и удаленным клиентом, использующим Kerberos.
AcceptSecurityContext (согласование) Позволяет компоненту сервера транспортного приложения устанавливать контекст безопасности между сервером и удаленным клиентом, использующим Negotiate.
AcceptSecurityContext (NTLM) Позволяет компоненту сервера транспортного приложения устанавливать контекст безопасности между сервером и удаленным клиентом, использующим NTLM.
AcceptSecurityContext (Schannel) Позволяет компоненту сервера транспортного приложения устанавливать контекст безопасности между сервером и удаленным клиентом, использующим SChannel.

Синтаксис

Параметры

фкредентиал [ в необязательное]

Маркер учетных данных сервера. Сервер вызывает функцию AcquireCredentialsHandle (General) с _ _ флагом SECPKG CRED Inbound или SECPKG CRED, _ _ установленным для получения этого маркера.

фконтекст [ в, out]

Указатель на структуру кткссандле . При первом вызове метода AcceptSecurityContext (General) этот указатель имеет значение NULL. При последующих вызовах фконтекст — это описатель частично сформированного контекста, который был возвращен в параметре фневконтекст при первом вызове.

пинпут [ в необязательное]

Указатель на структуру секбуффердеск , созданную клиентским вызовом InitializeSecurityContext (General) , который содержит дескриптор входного буфера.

При использовании поставщика общих служб SChannel первый буфер должен иметь тип _ Token pvbuffer и содержать маркер безопасности, полученный от клиента. Второй буфер должен иметь тип PVBUFFER _ Empty.

При использовании SSP Negotiate, Kerberos или NTLM сведения о привязке канала можно указать, передав структуру pvbuffer _ _ привязок каналов типа pvbuffer в дополнение к буферам, созданным вызовом функции InitializeSecurityContext (General) . Сведения о привязке канала для буфера привязки канала можно получить, вызвав функцию QueryContextAttributes (Schannel) в контексте SChannel, который клиент использовал для проверки подлинности.

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

Значение Значение
по УБЫВАНИЮ _ требований _ выделить _ память Digest и SChannel будут выделять выходные буферы. Завершив использование выходных буферов, освободите их, вызвав функцию фриконтекстбуффер .
в ASC _ req _ разрешены _ отсутствующие _ привязки Указывает, что дайджест не требует привязки каналов для внутренних и внешних каналов. Это значение используется для обратной совместимости, если неизвестна поддержка привязки канала конечной точки.
Это значение взаимоисключающее с _ _ _ привязками прокси-сервера ASC req.
Это значение поддерживается только для дайджеста SSP.
Windows server 2008, Windows Vista, Windows server 2003 и Windows XP: Это значение не поддерживается.
конфиденциальность по УБЫВАНИЮ _ требований _ Шифрование и расшифровка сообщений.
Хэш-код дайджеста поддерживает этот флаг только для SASL.
_Подключение ASC req _ Контекст безопасности не будет работать с сообщениями форматирования.
_ДЕЛЕГАТ ASC req _ Серверу разрешено олицетворять клиента. Допустимо для Kerberos. Игнорировать этот флаг для ограниченного делегирования.
_ _ Расширенная ошибка по убыванию требований _ При возникновении ошибок удаленная сторона будет уведомлена.
ASC _ req _ http (0x10000000) Используйте дайджест для HTTP. Пропустите этот флаг, чтобы использовать дайджест в качестве механизма SASL.
_ _ целостность требований ASC Подписывание сообщений и проверка подписей.
Канал Schannel не поддерживает этот флаг.
_ _ взаимная _ Проверка подлинности по убыванию требований Клиент должен предоставить сертификат, который будет использоваться для проверки подлинности клиента.
Этот флаг поддерживается только SChannel.
_ _ привязка прокси-сервера ASC req _ Указывает, что для дайджеста требуется привязка канала.
Это значение взаимоисключающее с параметром ASC _ req _ разрешает _ отсутствие _ привязок.
Это значение поддерживается только для дайджеста SSP.
Windows server 2008, Windows Vista, Windows server 2003 и Windows XP: Это значение не поддерживается.
Обнаружение повторного _ воспроизведения требований ASC _ _ Обнаружение воспроизводимых пакетов.
_ _ Обнаружение последовательности «ASC req» _ Обнаружение сообщений, полученных за пределами последовательности.
_поток требований _ ASC Поддерживать соединение с потоковой ориентацией.
Этот флаг поддерживается только SChannel.

Возможные флаги атрибутов и их значения см. в разделе требования к контексту. Флаги, используемые для этого параметра, имеют префикс ASC _ req, например, ASC _ req _ Delegate.

Запрошенные атрибуты могут не поддерживаться клиентом. Дополнительные сведения см. в описании параметра пфконтекстаттр .

Представление данных, например порядок байтов, на целевом объекте. Этот параметр может быть либо _ собственными _ дреп, либо безопасностью _ сети _ дреп.

Этот параметр не используется с SChannel или дайджест-SSP. При использовании SChannel или дайджест-SSP укажите для этого параметра нулевое значение.

фневконтекст [ в, out, необязательно]

Указатель на структуру кткссандле . При первом вызове метода AcceptSecurityContext (General) этот указатель получает новый обработчик контекста. При последующих вызовах фневконтекст может совпадать с маркером, указанным в параметре фконтекст .

паутпут [ в, out, необязательно]

Указатель на структуру секбуффердеск , содержащую дескриптор выходного буфера. Этот буфер отправляется клиенту для ввода в дополнительные вызовы InitializeSecurityContext (Общие). Выходной буфер может быть создан, даже если функция возвращает значение в СЕКУНДах _ _ . Любой созданный буфер должен быть отправлен обратно клиентскому приложению.

При использовании канала SChannel на выходе этот буфер получает маркер для контекста безопасности. Маркер должен быть отправлен клиенту. Функция также может возвращать буфер типа PVBUFFER » _ дополнительный». Кроме того, вызывающий объект должен передать в буфер типа _ Alert pvbuffer. В выходных данных, если создается предупреждение, этот буфер содержит сведения об этом предупреждении, и функция завершается ошибкой.

Указатель на переменную, которая получает набор битовых флагов, указывающих атрибуты установленного контекста. Описание различных атрибутов см. в разделе требования к контексту. Флаги, используемые для этого параметра, имеют префикс ASC _ RET, например, ASC _ RET _ Delegate.

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

птстиместамп [ out, необязательно]

Указатель на структуру метки времени , которая получает время окончания срока действия контекста. Рекомендуется, чтобы пакет безопасности всегда возвращал это значение в местное время.

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

Это необязательно при использовании поставщика общих служб SChannel. Когда удаленная сторона предоставил сертификат, который будет использоваться для проверки подлинности, этот параметр получает срок действия этого сертификата. Если сертификат не был указан, возвращается максимальное значение времени.

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

Возвращаемое значение

Эта функция возвращает одно из следующих значений.

Возвращаемый код и значение Описание
SEC_E_BAD_BINDINGS 0x80090346L Ошибка при выполнении функции. Политика привязки канала не была удовлетворена.
SEC_E_INCOMPLETE_MESSAGE 0x80090318L Функция выполнена успешно. Данные во входном буфере неполны. Приложение должно считывать дополнительные данные от клиента и вызывать [AcceptSecurityContext (General)] (AcceptSecurityContext—General.md) еще раз.
Это значение может быть возвращено при использовании поставщика общих служб SChannel. Дополнительные сведения об этом возвращаемом значении см. в разделе [AcceptSecurityContext (Schannel)] (AcceptSecurityContext—SChannel.md).
SEC_E_INSUFFICIENT_MEMORY 0x80090300L Ошибка при выполнении функции. Недостаточно доступной памяти для завершения запрошенного действия.
SEC_E_INTERNAL_ERROR 0x80090304L Ошибка при выполнении функции. Произошла ошибка, которая не сопоставлена с кодом ошибки SSPI.
SEC_E_INVALID_HANDLE 0x80100003L Ошибка при выполнении функции. В функцию передан недопустимый маркер.
SEC_E_INVALID_TOKEN 0x80090308L Ошибка при выполнении функции. В функцию передан недопустимый токен.
SEC_E_LOGON_DENIED 0x8009030CL Ошибка входа в систему.
SEC_E_NO_AUTHENTICATING_AUTHORITY 0x80090311L Ошибка при выполнении функции. Не удалось связаться с центром сертификации для проверки подлинности. Это может быть вызвано следующими причинами.
  • Неверное доменное имя субъекта проверки подлинности.
  • Домен недоступен.
  • Не удалось установить отношение доверия.
SEC_E_NO_CREDENTIALS 0x8009030EL Ошибка при выполнении функции. Недопустимый обработчик учетных данных, указанный в параметре фкредентиал . Это значение может быть возвращено при использовании дайджеста или поставщика общих служб SChannel.
SEC_E_OK 0x00000000 Функция выполнена успешно. Был принят [*контекст безопасности*](../secgloss/s-gly.md) , полученный от клиента. Если выходная лексема была создана функцией, она должна быть отправлена в клиентский процесс.
SEC_E_SECURITY_QOS_FAILED 0x80090332L Ошибка при выполнении функции. В параметре фконтекстрек указан недопустимый флаг атрибута контекста. Это значение может быть возвращено при использовании дайджест-поставщика общих служб.
SEC_E_UNSUPPORTED_FUNCTION 0x80090302L Ошибка при выполнении функции. Недопустимый флаг атрибута контекста (ASC_REQ_DELEGATE или ASC_REQ_PROMPT_FOR_CREDS) был указан в параметре фконтекстрек . Это значение может быть возвращено при использовании поставщика общих служб SChannel.
SEC_I_COMPLETE_AND_CONTINUE 0x00090314L Функция выполнена успешно. Сервер должен вызвать [CompleteAuthToken] (/Windows/Win32/API/SSPI/NF-SSPI-completeauthtoken) и передать выходной токен клиенту. Затем сервер ждет возврата токена от клиента, а затем выполняет еще один вызов [AcceptSecurityContext (General)] (AcceptSecurityContext—General.md).
SEC_I_COMPLETE_NEEDED 0x00090313L Функция выполнена успешно. Сервер должен завершить создание сообщения от клиента, а затем вызвать функцию [CompleteAuthToken] (/Windows/Win32/API/SSPI/NF-SSPI-completeauthtoken).
SEC_I_CONTINUE_NEEDED 0x00090312L Функция выполнена успешно. Сервер должен отправить выходной токен клиенту и дождаться возвращенного маркера. Возвращаемый токен должен передаваться в пинпут для другого вызова [AcceptSecurityContext (General)] (AcceptSecurityContext—General.md).
STATUS_LOGON_FAILURE 0xC000006DL Ошибка при выполнении функции. Функция [AcceptSecurityContext (General)] (AcceptSecurityContext—General.md) была вызвана после установки указанного контекста. Это значение может быть возвращено при использовании дайджест-поставщика общих служб.

Комментарии

Функция AcceptSecurityContext (General) — это серверный аналог функции InitializeSecurityContext (General) .

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

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

  1. Клиент передает токен на сервер.
  2. Сервер вызывает AcceptSecurityContext (Общие) в первый раз, что создает маркер ответа, который затем отправляется клиенту.
  3. Клиент получает маркер и передает его в InitializeSecurityContext (Общие). Если InitializeSecurityContext (Общие) возвращает значение _ _ в секунду, то выполнена взаимная проверка подлинности, и может начаться безопасный сеанс. Если InitializeSecurityContext (Общие) возвращает код ошибки, согласование взаимной проверки подлинности завершается. В противном случае маркер безопасности, возвращенный InitializeSecurityContext (General) , отправляется клиенту, а шаги 2 и 3 повторяются.

Параметры фконтекстрек и пфконтекстаттр представляют собой битовую маску, представляющую различные атрибуты контекста. Описание различных атрибутов см. в разделе требования к контексту.

Параметр пфконтекстаттр допустим при любом успешном возвращении, но только при окончательном успешном возвращении следует изучить флаги, относящиеся к аспектам безопасности контекста. Промежуточные возвраты могут задавать, например, _ флаг « _ Выделенная память ISC» _ .

Вызывающий объект отвечает за определение того, достаточно ли атрибутов последнего контекста. Если, например, был запрошен параметр конфиденциальность (шифрование), но его не удалось установить, некоторые приложения могут немедленно завершить подключение. Если невозможно установить контекст безопасности , сервер должен освободить частично созданный контекст, вызвав функцию делетесекуритиконтекст . Сведения о том, когда следует вызывать функцию делетесекуритиконтекст , см. в разделе делетесекуритиконтекст.

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

Читайте также:  Epson scan 2480 для windows 10
Оцените статью