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


C# RegistryKey.GetAccessControl方法代码示例

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


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

示例1: SetUserAccess

        private static void SetUserAccess(RegistryKey registryKey, IdentityReference user, RegistryRights accessType)
        {
            RegistrySecurity registrySecurity = registryKey.GetAccessControl();

            RegistryAccessRule rule = new RegistryAccessRule(
                user,
                accessType,
                InheritanceFlags.ContainerInherit,
                PropagationFlags.None,
                AccessControlType.Allow
            );

            registrySecurity.AddAccessRule(rule);

            registryKey.SetAccessControl(registrySecurity);
        }
开发者ID:LordBlacksun,项目名称:Allegiance-Community-Security-System,代码行数:16,代码来源:RegistryAccess.cs

示例2: DoesUserHaveAccess

        public static bool DoesUserHaveAccess(RegistryKey registryKey, string userNameOrSID, RegistryRights accessType)
        {
            RegistrySecurity registrySecurity = registryKey.GetAccessControl();

            foreach (RegistryAccessRule registryAccessRule in registrySecurity.GetAccessRules(true, true, typeof(NTAccount)))
            {
                IdentityReference sidIdentityReference = registryAccessRule.IdentityReference.Translate(typeof(SecurityIdentifier));

                if (
                    (userNameOrSID.Equals(registryAccessRule.IdentityReference.Value, StringComparison.InvariantCultureIgnoreCase) == true
                        || userNameOrSID.Equals(sidIdentityReference.Value, StringComparison.InvariantCultureIgnoreCase) == true)
                    && (registryAccessRule.RegistryRights & accessType) == accessType)
                    return true;
            }

            return false;
        }
开发者ID:LordBlacksun,项目名称:Allegiance-Community-Security-System,代码行数:17,代码来源:RegistryAccess.cs

示例3: copyregkey

        void copyregkey(RegistryKey src, RegistryKey dest)
        {
            if (src != null)
            {
                RegistrySecurity srcac = src.GetAccessControl();
                RegistrySecurity destac = new RegistrySecurity();
                string descriptor = srcac.GetSecurityDescriptorSddlForm(AccessControlSections.Access);
                destac.SetSecurityDescriptorSddlForm(descriptor);
                dest.SetAccessControl(destac);

                string[] valuenames = src.GetValueNames();
                foreach (string valuename in valuenames)
                {
                    Trace.WriteLine("Copy " + src.Name + " " + valuename + " : " + dest.Name);
                    dest.SetValue(valuename, src.GetValue(valuename));
                }
                string[] subkeynames = src.GetSubKeyNames();
                foreach (string subkeyname in subkeynames)
                {
                    Trace.WriteLine("DeepCopy " + src.Name + " " + subkeyname + " : " + dest.Name);
                    copyregkey(src.OpenSubKey(subkeyname), dest.CreateSubKey(subkeyname));
                }
            }
        }
开发者ID:kostaslamda,项目名称:win-installer,代码行数:24,代码来源:Support.cs

示例4: GetAccessControl

 public static RegistrySecurity GetAccessControl(RegistryKey key)
 {
     return key.GetAccessControl();
 }
开发者ID:noahfalk,项目名称:corefx,代码行数:4,代码来源:RegistryAclExtensions.net46.cs


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