SecurityContext SecurityContext SecurityContext SecurityContext Class


キュー内のメッセージのセキュリティ コンテキストを表します。Represents the security context for a message in a queue.

public ref class SecurityContext sealed : IDisposable
public sealed class SecurityContext : IDisposable
type SecurityContext = class
    interface IDisposable
Public NotInheritable Class SecurityContext
Implements IDisposable


セキュリティ コンテキストには、内部証明書など、対応する秘密キー、ユーザーの SID では、認証を要求するときに、証明書と送信者 id をメッセージに添付するために必要なキャッシュされたセキュリティ情報が含まれています。The security context contains cached security information such as an internal certificate, the corresponding private key, the user's SID, needed to attach a certificate and the sender identifier to a message when requesting authentication.

ASP.NET アプリケーションなどのクライアントは、キューにメッセージを送信するユーザーを偽装する場合、ユーザーの id は、キューへのアクセスに使用されます。If a client, such as an ASP.NET application, impersonates a user to send a message to a queue, the identity of the user is used to access the queue. キューがリモートの場合は、これらの資格情報がキャッシュされ、その後、キューに送信されるメッセージに使用します。If the queue is remote, these credentials are cached and used for messages that are subsequently sent to the queue. そのため、後続のメッセージの SID は、最初に、キューにメッセージを送信したユーザーのキャッシュされた id になります。Therefore, the SID in subsequent messages will be the cached identity of the first user that sent a message to the queue. 最初に、キューにメッセージを送信したユーザーのキャッシュされた id は、それ以降のユーザーに使用されます。The cached identity of the first user that sent a message to the queue will be used for subsequent users.

この問題を解決するには、設定、セキュリティ コンテキストを使用してSecurityContext現在のユーザーの資格情報が、キューへのアクセスに使用されるようにするリモート キューにメッセージを送信する前にします。To overcome this problem, set the security context using SecurityContext before sending a message to a remote queue to ensure that the current user's credentials are used to gain access to the queue. ただし、推奨されるベスト プラクティスには。However, the suggested best practice is to:

  1. 認証済みのキューのキューを作成します。Make the queue an authenticated queue.

  2. ASP.NET アプリケーション ドメイン id として実行をキューに書き込むには、そのアプリケーションを承認します。Run the ASP.NET application as a domain identity and authorize that application to write to the queue.

  3. キューの使用時にユーザーを偽装しません。Do not impersonate the user when using the queue. 代わりに、呼び出し元の id を取得し、いずれかの ASP.NET アプリケーションの承認チェックを実行またはメッセージの一部として呼び出し元の id を含めるし、受信側のアプリケーションの承認チェックを実行します。Instead, get the caller's identity and either perform authorization checking in the ASP.NET application or include the caller's identity as part of the message and perform authorization checking in the receiver application.


Dispose() Dispose() Dispose() Dispose()

SecurityContext によって使用されているすべてのリソースを解放します。Releases all resources used by the SecurityContext.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
Finalize() Finalize() Finalize() Finalize()
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)