MessageQueue.SetPermissions 方法

定義

將使用權限加入至目前集合。 這控制誰有權限可存取佇列屬性和佇列中的訊息。

多載

SetPermissions(AccessControlList)

根據存取控制清單的內容指派佇列的存取權限。

SetPermissions(MessageQueueAccessControlEntry)

根據存取控制項目的內容指派佇列的存取權限。

SetPermissions(String, MessageQueueAccessRights)

為電腦、群組或使用者提供指定的存取權限。

SetPermissions(String, MessageQueueAccessRights, AccessControlEntryType)

以指定的存取控制類型 (允許、拒絕、撤銷或設定),為電腦、群組或使用者提供指定的存取權限。

SetPermissions(AccessControlList)

根據存取控制清單的內容指派佇列的存取權限。

public:
 void SetPermissions(System::Messaging::AccessControlList ^ dacl);
public void SetPermissions (System.Messaging.AccessControlList dacl);
member this.SetPermissions : System.Messaging.AccessControlList -> unit
Public Sub SetPermissions (dacl As AccessControlList)

參數

dacl
AccessControlList

AccessControlList,包含指定信任項和要授與之使用權限的一個或多個存取控制項目。

例外狀況

存取訊息佇列方法時發生錯誤。

範例

下列程式碼範例示範 SetPermissions(AccessControlList) 的用法。


// Connect to a queue on the local computer.
MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue");

// Create an AccessControlList.
AccessControlList^ list = gcnew AccessControlList();

// Create a new trustee to represent the "Everyone" user group.
Trustee^ tr = gcnew Trustee("Everyone");

// Create an AccessControlEntry, granting the trustee read access to
// the queue.
AccessControlEntry^ entry = gcnew AccessControlEntry(
    tr, GenericAccessRights::Read,
    StandardAccessRights::Read,
    AccessControlEntryType::Allow);

// Add the AccessControlEntry to the AccessControlList.
list->Add(entry);

// Apply the AccessControlList to the queue.
queue->SetPermissions(list);

queue->Close();

// Connect to a queue on the local computer.
MessageQueue queue = new MessageQueue(".\\exampleQueue");

// Create an AccessControlList.
AccessControlList list = new AccessControlList();

// Create a new trustee to represent the "Everyone" user group.
Trustee tr = new Trustee("Everyone");

// Create an AccessControlEntry, granting the trustee read access to
// the queue.
AccessControlEntry entry = new AccessControlEntry(
    tr, GenericAccessRights.Read,
    StandardAccessRights.Read,
    AccessControlEntryType.Allow);

// Add the AccessControlEntry to the AccessControlList.
list.Add(entry);

// Apply the AccessControlList to the queue.
queue.SetPermissions(list);

備註

使用此多載來授與、拒絕或撤銷許可權,方法是使用訪問控制專案的集合來指定信任者和許可權資訊。 例如,這可用來同時將許可權授與多個使用者。

當您建構 ace 參數時所指定的信任項可以是個別使用者、使用者群組或計算機。 如果信任項是個人,請使用 格式 DOMAIN\user。 您可以為信任者指定 「.」 來指出本機電腦。

您透過 SetPermissions 將許可權新增至現有清單的許可權。 根據預設,公用或私人佇列的建立者具有完整控制權,而「所有人」網域群組具有取得佇列屬性、取得許可權,以及寫入佇列的許可權。 當您呼叫 SetPermissions時,使用者和許可權資訊會附加至現有清單底部。

系統會依序檢查每個 AccessControlEntry 事件,直到發生下列其中一個事件:

  • 拒絕 AccessControlEntry 存取會明確拒絕線程存取令牌中所列其中一個信任項的任何要求訪問許可權。

  • 線程存取令牌中列出的一或多個存取允許 AccessControlEntry 的項目會明確授與所有要求的訪問許可權。

  • 所有 AccessControlEntry 專案都已核取,而且仍有至少一個未明確允許的要求訪問許可權,在此情況下,會隱含拒絕存取。

當您建構 參數時 dacl ,您會將實例新增 AccessControlEntry 至集合 AccessControlList 。 當您建構每個存取控制專案時,您可以指定一般或標準訪問許可權。 佇列的許可權可以是下列任何組合:

  • 刪除

  • 讀取安全性

  • 寫入安全性

  • 同步處理

  • 修改擁有者

  • 讀取

  • 寫入

  • 執行

  • 必要

  • 全部

這些許可權是一組位旗標,您可以使用 OR 位運算子結合。

  • 完全控制

  • 刪除訊息

  • 接收訊息

  • 查看訊息

  • 接收 日誌 訊息

  • 取得佇列屬性

  • 設定佇列屬性

  • 取得許可權

  • 設定權限

  • 取得佇列擁有權

  • 寫入訊息

下表顯示這個方法是否可在各種工作組模式中使用。

工作組模式 可用
本機電腦
本機計算機和直接格式名稱
遠端電腦
遠端電腦和直接格式名稱

另請參閱

適用於

SetPermissions(MessageQueueAccessControlEntry)

根據存取控制項目的內容指派佇列的存取權限。

public:
 void SetPermissions(System::Messaging::MessageQueueAccessControlEntry ^ ace);
public void SetPermissions (System.Messaging.MessageQueueAccessControlEntry ace);
member this.SetPermissions : System.Messaging.MessageQueueAccessControlEntry -> unit
Public Sub SetPermissions (ace As MessageQueueAccessControlEntry)

參數

ace
MessageQueueAccessControlEntry

指定使用者、存取類型和使用權限類型的 MessageQueueAccessControlEntry

例外狀況

存取訊息佇列方法時發生錯誤。

範例

下列程式碼範例示範 SetPermissions(MessageQueueAccessControlEntry) 的用法。


// Connect to a queue on the local computer.
MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue");

// Create a new trustee to represent the "Everyone" user group.
Trustee^ tr = gcnew Trustee("Everyone");

// Create a MessageQueueAccessControlEntry, granting the trustee the
// right to receive messages from the queue.
MessageQueueAccessControlEntry^ entry = gcnew
    MessageQueueAccessControlEntry(
    tr, MessageQueueAccessRights::ReceiveMessage,
    AccessControlEntryType::Allow);

// Apply the MessageQueueAccessControlEntry to the queue.
queue->SetPermissions(entry);

queue->Close();

// Connect to a queue on the local computer.
MessageQueue queue = new MessageQueue(".\\exampleQueue");

// Create a new trustee to represent the "Everyone" user group.
Trustee tr = new Trustee("Everyone");

// Create a MessageQueueAccessControlEntry, granting the trustee the
// right to receive messages from the queue.
MessageQueueAccessControlEntry entry = new
    MessageQueueAccessControlEntry(
    tr, MessageQueueAccessRights.ReceiveMessage,
    AccessControlEntryType.Allow);

// Apply the MessageQueueAccessControlEntry to the queue.
queue.SetPermissions(entry);

備註

使用此多載來授與、拒絕或撤銷許可權,方法是使用訪問控制專案來指定信任者和許可權資訊。

當您建構 ace 參數時所指定的信任項可以是個別使用者、使用者群組或計算機。 如果信任項是個人,請使用 格式 DOMAIN\user。 您可以為信任者指定 「.」 來指出本機電腦。

您透過 SetPermissions 將許可權新增至現有清單的許可權。 根據預設,公用或私人佇列的建立者具有完整控制權,而「所有人」網域群組具有取得佇列屬性、取得許可權,以及寫入佇列的許可權。 當您呼叫 SetPermissions時,使用者和許可權資訊會附加至現有清單底部。

系統會依序檢查每個 AccessControlEntry 事件,直到發生下列其中一個事件:

  • 拒絕 AccessControlEntry 存取會明確拒絕線程存取令牌中所列其中一個信任項的任何要求訪問許可權。

  • 線程存取令牌中列出的一或多個存取允許 AccessControlEntry 的項目會明確授與所有要求的訪問許可權。

  • 所有 AccessControlEntry 專案都已核取,而且仍有至少一個未明確允許的要求訪問許可權,在此情況下,會隱含拒絕存取。

當您建構 MessageQueueAccessControlEntry時,rights您在 參數中指定的佇列權限可以是下列任何組合:

  • 完全控制

  • 刪除訊息

  • 接收訊息

  • 查看訊息

  • 接收 日誌 訊息

  • 取得佇列屬性

  • 設定佇列屬性

  • 取得許可權

  • 設定權限

  • 取得佇列擁有權

  • 寫入訊息

rights您在 參數的ace建構函式中指定的參數是列舉的MessageQueueAccessRights旗標。 它代表一組位旗標,您可以在建 rights 置 參數時使用位運算元 OR 結合。

下表顯示這個方法是否可在各種工作組模式中使用。

工作組模式 可用
本機電腦
本機計算機和直接格式名稱
遠端電腦
遠端電腦和直接格式名稱

另請參閱

適用於

SetPermissions(String, MessageQueueAccessRights)

為電腦、群組或使用者提供指定的存取權限。

public:
 void SetPermissions(System::String ^ user, System::Messaging::MessageQueueAccessRights rights);
public void SetPermissions (string user, System.Messaging.MessageQueueAccessRights rights);
member this.SetPermissions : string * System.Messaging.MessageQueueAccessRights -> unit
Public Sub SetPermissions (user As String, rights As MessageQueueAccessRights)

參數

user
String

取得其他佇列權限的個人、群組或電腦。

rights
MessageQueueAccessRights

MessageQueueAccessRights,指出訊息佇列指派給 user 傳入之佇列的一組權限。

例外狀況

usernull

存取訊息佇列方法時發生錯誤。

範例

下列程式碼範例示範 SetPermissions(String, MessageQueueAccessRights) 的用法。


// Connect to a queue on the local computer.
MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue");

// Grant all users in the "Everyone" user group the right to receive
// messages from the queue.
queue->SetPermissions("Everyone",
    MessageQueueAccessRights::ReceiveMessage);

queue->Close();

// Connect to a queue on the local computer.
MessageQueue queue = new MessageQueue(".\\exampleQueue");

// Grant all users in the "Everyone" user group the right to receive
// messages from the queue.
queue.SetPermissions("Everyone", MessageQueueAccessRights.ReceiveMessage);

備註

使用此多載將指定的許可權授與個別使用者。 使用者可以是任何有效的信任者,包括個別使用者、使用者群組或計算機。 如果使用者是個人,請使用 參數的格式DOMAINuser\user。 您可以為 user 參數指定 「.」,以指出本機計算機。

您透過 SetPermissions 新增許可權指派給現有清單的許可權。 根據預設,公用或私人佇列的建立者具有完整控制權,而網域群組 Everyone 具有取得佇列屬性、取得許可權和寫入佇列的許可權。 當您呼叫 SetPermissions時,使用者和許可權資訊會附加至現有清單底部。

系統會依序檢查每一個 AccessControlEntry ,直到發生下列其中一個事件:

  • 拒絕 AccessControlEntry 存取明確拒絕線程存取令牌中所列其中一個信任項的任何要求訪問許可權。

  • 線程存取令牌中所列之信任者的一或多個存取允許 AccessControlEntry 項目會明確授與所有要求的訪問許可權。

  • 已檢查所有 AccessControlEntry 專案,而且至少有一個尚未明確允許的要求訪問許可權,在此情況下,會隱含拒絕存取權。

參數中指定的 rights 佇列權限可以是下列任何組合:

  • 完全控制

  • 刪除訊息

  • 接收訊息

  • 查看訊息

  • 接收 日誌 訊息

  • 取得佇列屬性

  • 設定佇列屬性

  • 取得許可權

  • 設定權限

  • 取得佇列擁有權

  • 寫入訊息

列舉 MessageQueueAccessRights 表示一組位旗標,您可以使用位運算符 OR 來建置 rights 參數,

使用此多載時,您只能授與許可權;您無法撤銷或拒絕它們。 您必須使用不同的多載來明確授與 以外的Allow任何 AccessControlEntryType

下表顯示此方法是否可在各種工作組模式中使用。

工作組模式 可用
本機電腦
本機計算機和直接格式名稱
遠端電腦
遠端電腦和直接格式名稱

另請參閱

適用於

SetPermissions(String, MessageQueueAccessRights, AccessControlEntryType)

以指定的存取控制類型 (允許、拒絕、撤銷或設定),為電腦、群組或使用者提供指定的存取權限。

public:
 void SetPermissions(System::String ^ user, System::Messaging::MessageQueueAccessRights rights, System::Messaging::AccessControlEntryType entryType);
public void SetPermissions (string user, System.Messaging.MessageQueueAccessRights rights, System.Messaging.AccessControlEntryType entryType);
member this.SetPermissions : string * System.Messaging.MessageQueueAccessRights * System.Messaging.AccessControlEntryType -> unit
Public Sub SetPermissions (user As String, rights As MessageQueueAccessRights, entryType As AccessControlEntryType)

參數

user
String

取得其他佇列權限的個人、群組或電腦。

rights
MessageQueueAccessRights

MessageQueueAccessRights,指出訊息佇列指派給 user 傳入之佇列的一組權限。

entryType
AccessControlEntryType

AccessControlEntryType,指定要授與、拒絕或是撤銷 rights 參數所指定的使用權限。

例外狀況

存取訊息佇列方法時發生錯誤。

範例

下列程式碼範例示範 SetPermissions(String, MessageQueueAccessRights, AccessControlEntryType) 的用法。


// Connect to a queue on the local computer.
MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue");

// Grant all users in the "Everyone" user group the right to receive
// messages from the queue.
queue->SetPermissions("Everyone",
    MessageQueueAccessRights::ReceiveMessage,
    AccessControlEntryType::Allow);

queue->Close();

// Connect to a queue on the local computer.
MessageQueue queue = new MessageQueue(".\\exampleQueue");

// Grant all users in the "Everyone" user group the right to receive
// messages from the queue.
queue.SetPermissions("Everyone", MessageQueueAccessRights.ReceiveMessage,
    AccessControlEntryType.Allow);

備註

使用此多載來授與、拒絕或撤銷個別使用者指定的許可權。 使用者可以是任何有效的信任者,包括個別使用者、使用者群組或計算機。 如果使用者是個人,請使用 參數的格式DOMAINuser\user。 您可以為 user 參數指定 「.」,以指出本機計算機。

您透過 SetPermissions 新增許可權指派給現有清單的許可權。 根據預設,公用或私人佇列的建立者具有完整控制權,而網域群組 Everyone 具有取得佇列屬性、取得許可權和寫入佇列的許可權。 當您呼叫 SetPermissions時,使用者和許可權資訊會附加至現有清單底部。

系統會依序檢查每一個 AccessControlEntry ,直到發生下列其中一個事件:

  • 拒絕 AccessControlEntry 存取明確拒絕線程存取令牌中所列其中一個信任項的任何要求訪問許可權。

  • 線程存取令牌中所列之信任者的一或多個存取允許 AccessControlEntry 項目會明確授與所有要求的訪問許可權。

  • 已檢查所有 AccessControlEntry 專案,而且至少有一個尚未明確允許的要求訪問許可權,在此情況下,會隱含拒絕存取權。

參數中指定的 rights 佇列權限可以是下列任何組合:

  • 完全控制

  • 刪除訊息

  • 接收訊息

  • 查看訊息

  • 接收 日誌 訊息

  • 取得佇列屬性

  • 設定佇列屬性

  • 取得許可權

  • 設定權限

  • 取得佇列擁有權

  • 寫入訊息

列舉 MessageQueueAccessRights 表示一組位旗標,您可以使用位運算符 OR 來建置 rights 參數,

下表顯示此方法是否可在各種工作組模式中使用。

工作組模式 可用
本機電腦
本機計算機和直接格式名稱
遠端電腦
遠端電腦和直接格式名稱

另請參閱

適用於