共用方式為


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

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

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

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

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

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

  • 完全控制

  • 刪除訊息

  • 接收訊息

  • 查看訊息

  • 接收日誌訊息

  • 取得佇列屬性

  • 設定佇列屬性

  • 取得許可權

  • 設定許可權

  • 取得佇列擁有權

  • 寫入訊息

您在 ace 參數建構函式中指定的 rights 參數是 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 佇列的許可權集。

例外狀況

user null

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

範例

下列程式代碼範例示範如何使用 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);

備註

使用此多載將指定的許可權授與個別使用者。 使用者可以是任何有效的信任者,包括個別使用者、使用者群組或計算機。 如果使用者是個人,請使用 user 參數的格式 DOMAIN\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);

備註

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

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

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

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

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

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

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

  • 完全控制

  • 刪除訊息

  • 接收訊息

  • 查看訊息

  • 接收日誌訊息

  • 取得佇列屬性

  • 設定佇列屬性

  • 取得許可權

  • 設定許可權

  • 取得佇列擁有權

  • 寫入訊息

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

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

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

另請參閱

適用於