EqualPrefixSid 関数 (securitybaseapi.h)
EqualPrefixSid 関数は、2 つのセキュリティ識別子 (SID) プレフィックス値の等価性をテストします。 SID プレフィックスは、最後のサブ認証値を除く SID 全体です。
構文
BOOL EqualPrefixSid(
[in] PSID pSid1,
[in] PSID pSid2
);
パラメーター
[in] pSid1
比較する最初の SID 構造体へのポインター。 この構造体は有効であると見なされます。
[in] pSid2
比較する 2 番目の SID 構造体へのポインター。 この構造体は有効であると見なされます。
戻り値
SID プレフィックスが等しい場合、戻り値は 0 以外です。
SID プレフィックスが等しくない場合、戻り値は 0 になります。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
EqualPrefixSid 関数を使用すると、あるドメイン内のサーバー アプリケーションで、ユーザーが別のドメインにログオンしようとする試みを確認できます。 たとえば、ユーザーが LocalDomain のワークステーションから RemoteDomain にログオンしようとすると、LocalDomain のサーバーは、ユーザーとユーザーのグループの SID を RemoteDomain から要求できます。 RemoteDomain のドメイン コントローラーは、関連する SID で応答します。
指定したドメインの SID はすべて同じプレフィックスを持っています。 サーバーがユーザーの SID を受信すると、サーバーは SID ごとに EqualPrefixSid 関数を呼び出し、ユーザーまたはグループ SID と RemoteDomain の SID を比較できます。 SID プレフィックスのいずれかが等しくない場合、サーバーはログオン試行を拒否します。
ドメインの SID は、グループまたはユーザー SID と比較する前に変更することをお勧めします。 RemoteDomain の SID が S-1–1234-8 の場合、そのドメインの各グループまたはユーザー SID には、プレフィックスとして S-1–1234-8 があります。 EqualPrefixSid 関数を使用して SID を比較するために、アプリケーションはドメイン SID をコピーし、サブ認証 (RID) 値をコピーに追加して、S-1-1234-8-0 という形式で SID を作成します。 その後、アプリケーションは、グループ SID とユーザー SID を比較するテンプレートとして、変更されたドメイン SID を使用します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | securitybaseapi.h (Windows.h を含む) |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |