当前位置: 首页>>代码示例>>C#>>正文


C# MessageQueue.SetPermissions方法代码示例

本文整理汇总了C#中System.Messaging.MessageQueue.SetPermissions方法的典型用法代码示例。如果您正苦于以下问题:C# MessageQueue.SetPermissions方法的具体用法?C# MessageQueue.SetPermissions怎么用?C# MessageQueue.SetPermissions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Messaging.MessageQueue的用法示例。


在下文中一共展示了MessageQueue.SetPermissions方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ProcessLocalQueue

        void ProcessLocalQueue(DeploymentResult result)
        {
            Logging.Coarse("[msmq] Setting default permissions for on local queue '{0}'", _address.ActualUri);

            try
            {
                var q = new MessageQueue(_address.LocalName);

                q.SetPermissions(WellKnownSecurityRoles.Administrators, MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);
                result.AddGood("Successfully set permissions for '{0}' on queue '{1}'".FormatWith(WellKnownSecurityRoles.Administrators, _address.LocalName));

                q.SetPermissions(WellKnownSecurityRoles.CurrentUser, MessageQueueAccessRights.FullControl, AccessControlEntryType.Revoke);
                result.AddGood("Successfully set permissions for '{0}' on queue '{1}'".FormatWith(WellKnownSecurityRoles.Administrators, _address.LocalName));

                q.SetPermissions(WellKnownSecurityRoles.Everyone, MessageQueueAccessRights.FullControl, AccessControlEntryType.Revoke);
                result.AddGood("Successfully set permissions for '{0}' on queue '{1}'".FormatWith(WellKnownSecurityRoles.Administrators, _address.LocalName));

                q.SetPermissions(WellKnownSecurityRoles.Anonymous, MessageQueueAccessRights.FullControl, AccessControlEntryType.Revoke);
                result.AddGood("Successfully set permissions for '{0}' on queue '{1}'".FormatWith(WellKnownSecurityRoles.Administrators, _address.LocalName));
            }
            catch (MessageQueueException ex)
            {
                if (ex.Message.Contains("does not exist")) throw new DeploymentException("The queue '{0}' doesn't exist.", ex);

                throw;
            }


        }
开发者ID:GorelH,项目名称:dropkick,代码行数:29,代码来源:SetSensibleMsmqDefaults.cs

示例2: SetQueuePermissions

        private static void SetQueuePermissions(MessageQueue queue)
        {
            var admins = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null).Translate(typeof(NTAccount)).ToString();
            var everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null).Translate(typeof(NTAccount)).ToString();
            var anonymous = new SecurityIdentifier(WellKnownSidType.AnonymousSid, null).Translate(typeof(NTAccount)).ToString();

            queue.SetPermissions(admins, MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);
            queue.SetPermissions(everyone, MessageQueueAccessRights.GenericWrite, AccessControlEntryType.Allow);
            queue.SetPermissions(anonymous, MessageQueueAccessRights.GenericWrite, AccessControlEntryType.Allow);
        }
开发者ID:Zapote,项目名称:EzBus,代码行数:10,代码来源:MsmqUtilities.cs

示例3: ProcessLocalQueue

        void ProcessLocalQueue(DeploymentResult result)
        {
            Logging.Coarse("[msmq] Setting permissions for '{0}' on local queue '{1}'", _group, _address.ActualUri);

            var q = new MessageQueue(_address.FormatName);
            q.SetPermissions(_group, MessageQueueAccessRights.GetQueuePermissions, AccessControlEntryType.Allow);
            q.SetPermissions(_group, MessageQueueAccessRights.GetQueueProperties, AccessControlEntryType.Allow);
            q.SetPermissions(_group, MessageQueueAccessRights.WriteMessage, AccessControlEntryType.Allow);

            result.AddGood("Successfully granted Write permissions to '{0}' for queue '{1}'".FormatWith(_group, _address.ActualUri));
        }
开发者ID:GorelH,项目名称:dropkick,代码行数:11,代码来源:MsmqGrantWriteTask.cs

示例4: Execute

        public override DeploymentResult Execute()
        {
            var result = new DeploymentResult();

            Logging.Coarse("[msmq] Setting permissions for '{0}' on local queue '{1}'", _group, _address.ActualUri);

            var q = new MessageQueue(_address.FormatName);
            q.SetPermissions(_group, MessageQueueAccessRights.GetQueueProperties, AccessControlEntryType.Allow);
            q.SetPermissions(_group, MessageQueueAccessRights.GetQueuePermissions, AccessControlEntryType.Allow);

            result.AddGood("Successfully granted Read permissions to '{0}' for queue '{1}'".FormatWith(_group, _address.ActualUri));

            return result;
        }
开发者ID:GorelH,项目名称:dropkick,代码行数:14,代码来源:LocalMsmqGrantReadTask.cs

示例5: QueueProcessor

        public QueueProcessor(string QueuePath)
        {
            //访问本地电脑上的消息队列时Path的格式可以有如下几种:
            //MessageQueue mq = new MessageQueue();
            //mq.Path = @".\Private$\test";
            //mq.Path = @"sf00902395d34\Private$\test";  //sf00902395d34是主机名
            //mq.Path = @"FormatName:DIRECT=OS:sf00902395d34\Private$\test";
            //mq.Path = @"FormatName:DIRECT=OS:localhost\Private$\test";

            //访问远程电脑上的消息队列时Path的格式
            //mq.Path = @"FormatName:DIRECT=OS:server\Private$\test";            

            reset = new ManualResetEvent(true);
            logger = LogManager.GetLogger("logger");

            _path = QueuePath;

            //判断指定的消息队列是否存在
            if (MessageQueue.Exists(QueuePath))
            {
                queue = new MessageQueue(QueuePath);
                logger.Info(string.Format("Init : {0} successfully!", QueuePath));
            }
            else
            {
                //不存在,创建
                queue = MessageQueue.Create(QueuePath);                
                //赋予权限
                queue.SetPermissions("Everyone", MessageQueueAccessRights.FullControl, AccessControlEntryType.Set);

                logger.Info(string.Format("Create message queue : {0} successfully!", QueuePath));
            }
        }
开发者ID:danielmartind,项目名称:MSMQ_EMIAL,代码行数:33,代码来源:QueueProcessor.cs

示例6: Execute

        public override DeploymentResult Execute()
        {
            var result = new DeploymentResult();

            Logging.Coarse("[msmq] Setting '{0}' access rights for '{1}' on local queue '{2}'", _accessRights, _user, _address.ActualUri);

            var q = new MessageQueue(_address.FormatName);
            q.SetPermissions(_user, _accessRights, AccessControlEntryType.Allow);

            result.AddGood("Successfully granted '{0}' access rights to '{1}' for queue '{2}'".FormatWith(_accessRights, _user, _address.ActualUri));

            return result;
        }
开发者ID:rossbeehler,项目名称:dropkick,代码行数:13,代码来源:LocalMsmqGrantAccessRightsTask.cs

示例7: SetPermissionsForQueue

        static void SetPermissionsForQueue(MessageQueue queue, string account)
        {
            var allow = AccessControlEntryType.Allow;
            queue.SetPermissions(AdminGroup, MessageQueueAccessRights.FullControl, allow);
            queue.SetPermissions(EveryoneGroup, MessageQueueAccessRights.WriteMessage, allow);
            queue.SetPermissions(AnonymousLogon, MessageQueueAccessRights.WriteMessage, allow);

            queue.SetPermissions(account, MessageQueueAccessRights.WriteMessage, allow);
            queue.SetPermissions(account, MessageQueueAccessRights.ReceiveMessage, allow);
            queue.SetPermissions(account, MessageQueueAccessRights.PeekMessage, allow);
        }
开发者ID:chriscatilo,项目名称:docs.particular.net,代码行数:11,代码来源:QueueCreation.cs

示例8: GrantPermissions

 protected void GrantPermissions(MessageQueue queue, string user)
 {
     if (!string.IsNullOrEmpty(user))
     {
         queue.SetPermissions(user,
                              MessageQueueAccessRights.DeleteMessage |
                              MessageQueueAccessRights.DeleteJournalMessage |
                              MessageQueueAccessRights.GenericRead |
                              MessageQueueAccessRights.GenericWrite |
                              MessageQueueAccessRights.GetQueuePermissions |
                              MessageQueueAccessRights.PeekMessage |
                              MessageQueueAccessRights.ReceiveJournalMessage |
                              MessageQueueAccessRights.ReceiveMessage |
                              MessageQueueAccessRights.WriteMessage,
                              AccessControlEntryType.Allow);
     }
 }
开发者ID:JackWangCUMT,项目名称:rhino-esb,代码行数:17,代码来源:AbstractCreateQueuesAction.cs

示例9: ProcessStart

        public void ProcessStart(string refNum)
        {
            try
            {
                while (ReadQueueSize(refNum) > 0)
                {
                    if (MessageQueue.Exists(@".\Private$\ScrapeSessionsQueue"))
                    {
                        MQ = new System.Messaging.MessageQueue(@".\Private$\ScrapeSessionsQueue");
                        MQ.SetPermissions("Everyone", MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);

                        if (MQ != null)
                        {
                            Message processMessage = MQ.Receive(new TimeSpan(0, 0, 0, 0, 10));

                            processMessage.Formatter = new XmlMessageFormatter(new Type[] { typeof(ScrapeSession) });
                            ScrapeSession _scrapeSession = (ScrapeSession)processMessage.Body;

                            // Call the scraper
                        }
                    }
                    else
                    {
                        log.LogMessage(Enumeration.LoggingPriority.Low, refNum, "Create new Que");

                        MQ = MessageQueue.Create(@".\Private$\ScrapeSessionsQueue");
                        MQ.SetPermissions("Everyone", MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);
                    }
                }
            }
            catch (MessageQueueException mqEx)
            {
                log.LogMessage(Enumeration.LoggingPriority.High, refNum, mqEx);
            }
            catch (Exception ex)
            {
                log.LogMessage(Enumeration.LoggingPriority.High, refNum, ex);
            }
        }
开发者ID:ELEN7045-Group1,项目名称:group-project,代码行数:39,代码来源:ScrapeSessionQue.cs

示例10: Listen

 public override bool Listen(int numberOfSimultaneousRequests=1)
 {
     MessageQueue mqReceive = new MessageQueue(url);
     MessageQueue.EnableConnectionCache = false;
     // Control Queue permissions here:
     mqReceive.SetPermissions("Everyone",
         MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);
     Console.WriteLine(mqReceive.MulticastAddress);
     mqReceive.Formatter = new XmlMessageFormatter(paramTypes);
     //mqReceive.Formatter = new BinaryMessageFormatter();
     //int numberOfSimultaneousRequests = 1;
     try
     {
         for (int i = 0; i < numberOfSimultaneousRequests; i++) mqReceive.BeginReceive(TimeSpan.FromSeconds(5),
              mqReceive, new AsyncCallback(OnMessageArrival));
         running = true;
         return true;
     }
     catch (Exception e)
     {
         return false;
     }
 }
开发者ID:WrongDog,项目名称:CommandPattern,代码行数:23,代码来源:MSMessageQueue.cs

示例11: AddQProcess

        public void AddQProcess(string refNum)
        {
            try
            {
                if (MessageQueue.Exists(@".\Private$\ScrapeSessionsQueue"))
                {
                    MQ = new System.Messaging.MessageQueue(@".\Private$\ScrapeSessionsQueue");
                    MQ.SetPermissions("Everyone", MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);
                }
                else
                {
                    log.LogMessage(Enumeration.LoggingPriority.Low, refNum, "Creating MS message queue with name: " + @".\Private$\ScrapeSessionsQueue");

                    MQ = MessageQueue.Create(@".\Private$\ScrapeSessionsQueue");
                    MQ.SetPermissions("Everyone", MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);
                }

                ScrapeSession session = new ScrapeSession
                {
                    AccountPassword = scrapeSession.AccountPassword,
                    AccountUsername = scrapeSession.AccountUsername,
                    ReferenceNumber = refNum,
                    Rules = scrapeSession.Rules,
                    ScrapeURL = scrapeSession.ScrapeURL
                };

                MQ.Send(session);
            }
            catch (MessageQueueException mqEx)
            {
                log.LogMessage(Enumeration.LoggingPriority.High, refNum, mqEx);
            }
            catch (Exception ex)
            {
                log.LogMessage(Enumeration.LoggingPriority.High, refNum, ex);
            }
        }
开发者ID:ELEN7045-Group1,项目名称:group-project,代码行数:37,代码来源:ScrapeSessionQue.cs

示例12: Execute

        public void Execute(string user)
        {
            // will create the queues if they are not already there
            messageLoggingModule.Init(transport, null);
            var queuePath = MsmqUtil.GetQueuePath(new Endpoint
            {
                Uri = messageLoggingModule.LogQueue
            }).QueuePath;

            using (var queue = new MessageQueue(queuePath))
            {
                queue.SetPermissions(user,
                                     MessageQueueAccessRights.DeleteMessage |
                                     MessageQueueAccessRights.DeleteJournalMessage |
                                     MessageQueueAccessRights.GenericRead |
                                     MessageQueueAccessRights.GenericWrite |
                                     MessageQueueAccessRights.GetQueuePermissions |
                                     MessageQueueAccessRights.PeekMessage |
                                     MessageQueueAccessRights.ReceiveJournalMessage |
                                     MessageQueueAccessRights.ReceiveMessage |
                                     MessageQueueAccessRights.WriteMessage,
                                     AccessControlEntryType.Allow);
            }
        }
开发者ID:philiphoy,项目名称:rhino-esb,代码行数:24,代码来源:CreateLogQueueAction.cs

示例13: SetPermissionsForQueue

        /// <summary>
        /// Sets default permissions for queue.
        /// </summary>
        public static void SetPermissionsForQueue(MessageQueue q, string account)
        {
            try
            {
                q.SetPermissions(LocalAdministratorsGroupName, MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);
                q.SetPermissions(LocalEveryoneGroupName, MessageQueueAccessRights.WriteMessage, AccessControlEntryType.Allow);
                q.SetPermissions(LocalAnonymousLogonName, MessageQueueAccessRights.WriteMessage, AccessControlEntryType.Allow);

                q.SetPermissions(account, MessageQueueAccessRights.WriteMessage, AccessControlEntryType.Allow);
                q.SetPermissions(account, MessageQueueAccessRights.ReceiveMessage, AccessControlEntryType.Allow);
                q.SetPermissions(account, MessageQueueAccessRights.PeekMessage, AccessControlEntryType.Allow);
            }
            catch (Exception ex)
            {
                var message = String.Format("Access to MSMQ queue '{0}' is denied. Please set permission for this queue to be accessable for '{1}' account.", q.Path, account);

                _logger.ErrorException(message, ex);
                throw new Exception(message, ex);
            }
        } 
开发者ID:paralect,项目名称:Paralect.ServiceBus,代码行数:23,代码来源:MsmqPermissionManager.cs

示例14: SetPermissions

        private void SetPermissions()
        {
            if (System.Messaging.MessageQueue.Exists(this.Path))
            {
                this.LogTaskMessage(string.Format(CultureInfo.CurrentCulture, "Setting permissions on queue: {0}", this.Path));
                using (System.Messaging.MessageQueue queue = new System.Messaging.MessageQueue(this.Path))
                {
                    if (this.Allow != null)
                    {
                        foreach (ITaskItem i in this.Allow)
                        {
                            MessageQueueAccessRights permission = (MessageQueueAccessRights)Enum.Parse(typeof(MessageQueueAccessRights), i.GetMetadata("Permissions"), true);
                            this.LogTaskMessage(MessageImportance.Low, string.Format(CultureInfo.CurrentCulture, "Allow permission for user {0} - {1}", i.ItemSpec, i.GetMetadata("Permissions")));
                            queue.SetPermissions(i.ItemSpec, permission, AccessControlEntryType.Allow);
                        }
                    }

                    if (this.Deny != null)
                    {
                        foreach (ITaskItem i in this.Deny)
                        {
                            MessageQueueAccessRights permission = (MessageQueueAccessRights)Enum.Parse(typeof(MessageQueueAccessRights), i.GetMetadata("Permissions"), true);
                            this.LogTaskMessage(MessageImportance.Low, string.Format(CultureInfo.CurrentCulture, "Deny permission for user {0} - {1}", i.ItemSpec, i.GetMetadata("Permissions")));
                            queue.SetPermissions(i.ItemSpec, permission, AccessControlEntryType.Deny);
                        }
                    }

                    if (this.Set != null)
                    {
                        foreach (ITaskItem i in this.Set)
                        {
                            MessageQueueAccessRights permission = (MessageQueueAccessRights)Enum.Parse(typeof(MessageQueueAccessRights), i.GetMetadata("Permissions"), true);
                            this.LogTaskMessage(MessageImportance.Low, string.Format(CultureInfo.CurrentCulture, "Set permission for user {0} - {1}", i.ItemSpec, i.GetMetadata("Permissions")));
                            queue.SetPermissions(i.ItemSpec, permission, AccessControlEntryType.Set);
                        }
                    }

                    if (this.Revoke != null)
                    {
                        foreach (ITaskItem i in this.Revoke)
                        {
                            MessageQueueAccessRights permission = (MessageQueueAccessRights)Enum.Parse(typeof(MessageQueueAccessRights), i.GetMetadata("Permissions"), true);
                            this.LogTaskMessage(MessageImportance.Low, string.Format(CultureInfo.CurrentCulture, "Revoke permission for user {0} - {1}", i.ItemSpec, i.GetMetadata("Permissions")));
                            queue.SetPermissions(i.ItemSpec, permission, AccessControlEntryType.Revoke);
                        }
                    }
                }
            }
            else
            {
                this.Log.LogError(string.Format(CultureInfo.CurrentCulture, "Queue not found: {0}", this.Path));
            }
        }
开发者ID:simondmorias,项目名称:MSBuildExtensionPack,代码行数:53,代码来源:MSMQ.cs

示例15: setFullPermissions

 private static void setFullPermissions(MessageQueue queue, WellKnownSidType wellKnownSidType)
 {
     var administratorsGroupName = new SecurityIdentifier(wellKnownSidType, null)
         .Translate(typeof(NTAccount))
         .ToString();
     queue.SetPermissions(administratorsGroupName, MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);
 }
开发者ID:OmerMor,项目名称:Messageless,代码行数:7,代码来源:MsmqTransport.cs


注:本文中的System.Messaging.MessageQueue.SetPermissions方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。