标签: access-rights

使用C#.NET将"Everyone"权限添加到文件夹

我使用下面的代码允许Everyone访问文件夹:

System.Security.AccessControl.DirectorySecurity sec =
    System.IO.Directory.GetAccessControl(directory, AccessControlSections.All);
FileSystemAccessRule accRule = new FileSystemAccessRule("Everyone",
                                       FileSystemRights.Modify,
                                       AccessControlType.Allow);
sec.AddAccessRule(accRule);    // setACL
sec.ResetAccessRule(accRule);
Run Code Online (Sandbox Code Playgroud)

现在,Everyone用户已添加到该文件夹​​,但未分配任何权限.不检查所有读,写,执行等复选框.

c# directory-security access-rights

69
推荐指数
3
解决办法
5万
查看次数

如何解决"Microsoft Visual Studio(VS)"错误"无法连接到配置的开发Web服务器"

问题

如果您开始使用" Microsoft Visual Studio(VS) "中的" Microsoft Internet Information Services Express(IIS) ",您可能会在运行时获得生成此错误消息

Unable to connect to the configured development Web server.

Failed to register URL "http://{ip_addr}:{port}/" for site "{project_name}" application "/". Error description: Access is denied. (0x80070005)

它有什么样的权利?

visual-studio iis-express access-rights

45
推荐指数
5
解决办法
10万
查看次数

删除的构造函数必须是私有的吗?

class A
{
public:
    A() = default;
    A(const A&) = delete;
};

class A
{
public:
    A() = default;

private:
    A(const A&) = delete;
};
Run Code Online (Sandbox Code Playgroud)

在任何情况下,这两个定义是否始终相同?

c++ standards constructor access-rights c++11

25
推荐指数
2
解决办法
3363
查看次数

基于用户查看权限的不同REST资源内容

我想根据访问权限为不同的用户提供相同问题的不同答案.我读了这个问题:

在RESTful响应中排除私有数据

但我不接受的答案,其中指出,应同时提供一致/people.xml/unauthenticated/people.xml,因为我的REST的理解是,特定资源应该生活在一个特定的位置,而不是几个要看你如何其信息多有兴趣在.

我正在设计的系统比那个系统复杂得多.假设用户创建了许多朋友圈,并为他们分配了不同的访问权限.例如,我的"熟人"圈可能可以访问我的生日,而我的"专业"圈子可能可以访问我的工作经历,但不是相反.为了从我所提到的问题,适用的答案,我需要让所有的用户的圈子(我可能要保持出于安全原因的秘密)的一种方式,然后经过/circles/a/users/42,/circles/b/users/42,/circles/c/users/42等等,然后合并结果以显示可用的最大信息量.显然,没有一个圆圈可以获得任何其他圈子获得的所有信息.我认为这很棘手(请注意,我可能需要使用几种对象来执行此操作,未来版本可能需要不同的过程),但如果我想对特定用户施加安全限制,尽管他也是在我的一些圈子里?这个问题甚至可以解决吗?即使我拒绝回复上述任何一个问题并提出一个可以给我答案的新查询,它仍然会揭示这样一个事实,即由于个人访问限制,这个特定用户的处理方式不同.

我在这里错过了什么?我甚至可以开发RESTful Web服务吗?

如果结论是行为不是RESTful,那么这仍然会构成违反REST合同在道德上可行的情况吗?如果是这样,有什么负面影响?例如,我是否存在代理缓存问题的风险?

api rest web-services access-rights restful-architecture

22
推荐指数
2
解决办法
5457
查看次数

CouchDB范围的只读访问权限

我需要创建一个CouchDB用户,它只能读取任何数据库中的文档但不能写任何数据库.就我而言,它不是默认支持的(这里描述用户类型).

正如维基所说,每个数据库都有访问权限,所以我想要做的不是使用CouchDB的最佳方法.

无论如何,这样做会很棒.能否请您给我一些如何实施的提示?

couchdb user-roles access-rights

20
推荐指数
1
解决办法
7355
查看次数

为什么PRIVATE成员函数不能成为另一个类的朋友函数?

class x
{
    void xx() {}
};

class y
{
    friend void x::xx();
};
Run Code Online (Sandbox Code Playgroud)

这会导致错误

错误:朋友函数'xx'是'x'的私有成员

为什么我不能声明私有成员函数成为另一个类的朋友?

c++ class friend language-lawyer access-rights

19
推荐指数
2
解决办法
4610
查看次数

这个Google LVL政策实施是否合理安全?

ServerManagedPolicyGoogle在其许可证验证库中提供的默认值依赖于服务器响应来确定许可证重新验证间隔.这导致需要每隔几天重新确认一次,永久性.这不仅对用户造成麻烦,对于长时间没有连接的用户来说,这可能是一个严重的问题.(我们刚刚接到一位用户的询问,该用户预计几周内没有互联网连接,这就是推动这个问题的原因.)

总之,我正在寻找一种能够完成两件事的算法:

  1. 与之相比,大幅降低了连接要求ServerManagedPolicy;
  2. 提供相同级别的反盗版保护.

在回答这个问题时,建议的策略算法是忽略来自Google服务器的响应中提供的时间,而是使用大约一个月的许可有效期,每隔几天尝试一次许可检查(如果延长有效期,收到许可的答复).

虽然这种方法部分地解决了第一个目标,但它仍然要求用户在使用应用程序时每月连接一次,因此它不适用于(至少一个)我们的用户.

以下算法完成了第一个目标,但我不知道第二个目标.任何评论指出该算法的弱点,或建议另一种方法,将是受欢迎的.

  1. 首次运行时,请执行许可检查并在提供完整功能之前坚持许可响应.收到后,设置相对较短的有效期(但比Google Play提供的退款期限长,目前为15分钟).同时注册一个超过几天的宽限期.
  2. 应用程序将在许可证到期后再次开始检查.如果连接失败(飞行模式等),它将一直有效,直到宽限期到期.
  3. 在宽限期到期后,在允许正常的应用程序运行之前,坚持第二个许可响应.
  4. 收到第二个LICENSED响应后,永久启用应用程序的所有功能,再也不用费心检查.
  5. 如果在任何时候收到UNLICENSED响应,则永久禁用完整功能.(当然,用户可以通过删除所有应用数据恢复到第1步.)

附加要点:

  • 建议放弃第一次许可检查,并等待返回期限到期,然后再进行许可检查.坚持第一个LICENSED响应的目的是防止利用漏洞,在许可证检查失败后,用户只需停止应用程序进程,清除应用程序数据,然后重新启动应用程序.(该应用程序即使一次只能使用15分钟也能提供价值.)
  • 坚持第二个LICENSED响应的目的是绕过buy-run-backup-return-restore漏洞.
  • 我不是在问回叫许可证是否是一个好主意(这就是谷歌提供的代替他们弃用的复制保护机制).我也很清楚,没有反盗版保护是万无一失的,谷歌的整个许可机制都可以被规避(在这种情况下,所有关于策略算法设计的问题都是无关紧要的).这个问题的主要问题是与其他政策(如ServerManagedPolicy)相比,上述算法的相对风险(对我们而言)和对用户的好处.

algorithm android android-lvl access-rights google-play

15
推荐指数
1
解决办法
1430
查看次数

为什么注册表写在不同于预期的位置?

我尝试将注册表子项及其对应的值写入注册表,如下所示:

const string subKey = @"SOFTWARE\Apple\Banana\";
const string regKey = "pip";

var rk = Registry.LocalMachine.OpenSubKey(subKey);
if (rk == null)
    rk = Registry.LocalMachine.CreateSubKey(subKey);

var rv = rk.GetValue(regKey);
if (rv == null)
    rk.SetValue(regKey, "XXX");

return rv.ToString();
Run Code Online (Sandbox Code Playgroud)

现在的问题是,我当我手动查找的位置(通过注册表编辑器),我不能看到该文件夹SOFTWARE\Apple\BananaHKLM.

但是当我再次运行上面的代码并进行调试时,我可以看到两者Registry.LocalMachine.OpenSubKey(subKey)rk.GetValue(regKey)产生之前保存的值.然而,我没有通过regedit看到给定位置的值.所以在搜索注册表时,我可以在以下位置看到上面的键和值:

  1. HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Apple\Banana

  2. HKEY_USERS\S-1-5-21-44266131-1313801407-2392705078-1000\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Apple\Banana

在两者之下,价值保持与我保存完全一样.所以我意识到这是我的应用程序读取值的地方虽然在我的代码中我称之为HKLM\SOFTWARE\Apple\Banana\..

  1. 为什么会这样?它与访问权限问题有关吗?

  2. 这是预期的行为吗?从某种意义上说,这个值对我来说非常重要,所以我只知道是否存在与自动重定位相关的风险!

  3. 是否有正确的方式写入注册表,以便它保持在其确切的位置..

我的帐户是管理员一,我使用的是32位Windows 7.

编辑:据我所知,注册表项存储在当前用户位置而不是HKLM中.当我从另一个帐户查询reg值时,我没有得到该值.简而言之,首先将它保存到HKLM没有意义:(

c# registry regedit registry-virtualization access-rights

9
推荐指数
2
解决办法
7812
查看次数

listFiles()在不应该返回null时返回null.它过去一直工作到最近,并没有被修改

public static void main(String[] args) throws InterruptedException {
    // TODO Auto-generated method stub
    while(true)
    {
        ArrayList<File> wallpapers = new ArrayList<File>();
        File dir = new File("C:/Windows/System32/oobe/info/backgrounds/");
        if(dir.listFiles() == null)
            System.out.println("Empty");
        for(File img : dir.listFiles())
        {
            if(img.getName().endsWith(".jpg") && img.getName() != "backgroundDefault.jpg")
                wallpapers.add(img);
        }
        File current = new File("C:/Windows/System32/oobe/info/backgrounds/backgroundDefault.jpg");
        int i = 1;
        for(File img : wallpapers)
        {
            File f = new File("C:/Windows/System32/oobe/info/backgrounds/"+ i++ +".jpg");
            current.renameTo(f);
            File file = new File("C:/Windows/System32/oobe/info/backgrounds/backgroundDefault.jpg");
            img.renameTo(file);
            Thread.sleep(60000);
        }

    }
}   }
}
Run Code Online (Sandbox Code Playgroud)

此代码每分钟更改Windows登录屏幕的背景图像.listFiles()为dir返回null,我得到一个NullPointerException for(File img:dir.listFiles()).我以为文件权限可能有问题,所以我尝试将文件路径更改为我桌面上的目录,并且工作正常.所以我假设我无法访问系统文件,因为我的程序没有足够的权限.我还要确切地说,这段代码直到最近一直运行良好.它没有被修改.我刚刚发现我的登录壁纸不再改变了.即使程序确实有效,我也无法在通过Eclipse启动程序时修改文件名,但是我会将其导出为.jar,并使用具有最高权限的任务计划程序安排它,以便为其提供管理权限,直到它工作没有任何问题,直到最近.我还尝试忽略错误,认为它们与访问权限相关,并尝试通过任务计划程序以及使用批处理文件启动具有最高权限的可执行jar.我甚至尝试通过我用管理员权限打开的cmd启动jar无效但仍然在cmd中说NullPointerException.我有点失落,也会感激任何帮助.

java jar batch-file nullpointerexception access-rights

8
推荐指数
1
解决办法
2万
查看次数

自动更新在VSCode中不起作用:无法创建临时目录:权限被拒绝

从某个时候开始,我会不时收到此错误(我想是在编辑器尝试检查更新时触发此错误),并且手动/自动更新不起作用。我可以更新编辑器的唯一方法是重新下载该应用并手动替换。

有人遇到同样的问题并成功解决了吗?

屏幕截图

access-rights visual-studio-code

8
推荐指数
3
解决办法
1069
查看次数