Udostępnij za pośrednictwem


Przy użyciu sesji protokołu SOAP

Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.

Aby żądanie protokołu SOAP wykonać w kontekście istniejącej sesja, go jako część żądania protokołu SOAP sesja na serwerze określić następujące:

  • Ten sam identyfikator sesja, dostarczony przez serwer wcześniej do klient.

  • Identyfikator odpowiedniego punktu końcowego HTTP dla punktu końcowego, gdzie poprzednio zainicjowana sesja protokołu SOAP

  • Tym samym kontekście użytkownika.Jest to albo Windows lub SQL Server użytkownika, w zależności od obsługiwanego LOGIN_TYPE we właściwościach protokołu SOAP dla punktu końcowego.

Identyfikator określonej sesja nie istnieje lub nie jest poprawnie uformowany, zwracany jest komunikat o błędzie protokołu SOAP z sqlSession element w nagłówku z Zakończenie atrybut.W przeciwnym razie serwer odpowiada za wyświetlanie echa ponownie sqlSession nagłówek, który klient wysyłanych w żądaniu.

Jeśli żądanie jest wykonywane w innym kontekście zabezpieczeń lub punkt końcowy niż ta, która zainicjowała sesja, zwracany jest błąd protokołu SOAP.W odpowiedzi, SOAP usterki kod zakończenia warstwę MYDŁA zostaną określone i w sqlSession nagłówek Zakończenie atrybut będzie uwzględniona wartość true.

Ponadto, aby zapobiec złośliwy użytkownik z określania istniejącej sesji, Zakończenie atrybut jest zestaw, a błąd protokołu SOAP są zwracane przez serwer jako wiadomość odpowiedzi jedynego jakikolwiek wniosek, w którym sesja zidentyfikowane dla rejestracji jest nieznany serwer.

Przykłady

W poniższym przykładzie pokazano rejestrowanie sesja protokołu SOAP.Pokazuje format komunikatu SOAP, które klient wysyła żądając zarejestrować w istniejącej sesja protokołu SOAP.Należy zauważyć, że rzeczywiste sessionId wartość będzie identyfikator sesja.

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
    <!-- enlist in an existing session -->
    <sqloptions:sqlSession sessionId="AAAAADreaLE="/>
</SOAP-ENV:Header>

Serwer będzie albo echo wiadomość z powrotem do klient, aby wskazać sesji jest możliwy lub zwrócić błąd protokołu SOAP do klient, jeśli sesja zidentyfikowane w żądaniu nie jest dostępny.