我使用下面的代码允许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用户已添加到该文件夹,但未分配任何权限.不检查所有读,写,执行等复选框.
问题
如果您开始使用" 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)
它有什么样的权利?
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)
在任何情况下,这两个定义是否始终相同?
我想根据访问权限为不同的用户提供相同问题的不同答案.我读了这个问题:
但我不接受的答案,其中指出,应同时提供一致/people.xml和/unauthenticated/people.xml,因为我的REST的理解是,特定资源应该生活在一个特定的位置,而不是几个要看你如何其信息多有兴趣在.
我正在设计的系统比那个系统复杂得多.假设用户创建了许多朋友圈,并为他们分配了不同的访问权限.例如,我的"熟人"圈可能可以访问我的生日,而我的"专业"圈子可能可以访问我的工作经历,但不是相反.为了从我所提到的问题,适用的答案,我需要让所有的用户的圈子(我可能要保持出于安全原因的秘密)的一种方式,然后经过/circles/a/users/42,/circles/b/users/42,/circles/c/users/42等等,然后合并结果以显示可用的最大信息量.显然,没有一个圆圈可以获得任何其他圈子获得的所有信息.我认为这很棘手(请注意,我可能需要使用几种对象来执行此操作,未来版本可能需要不同的过程),但如果我想对特定用户施加安全限制,尽管他也是在我的一些圈子里?这个问题甚至可以解决吗?即使我拒绝回复上述任何一个问题并提出一个可以给我答案的新查询,它仍然会揭示这样一个事实,即由于个人访问限制,这个特定用户的处理方式不同.
我在这里错过了什么?我甚至可以开发RESTful Web服务吗?
如果结论是行为不是RESTful,那么这仍然会构成违反REST合同在道德上可行的情况吗?如果是这样,有什么负面影响?例如,我是否存在代理缓存问题的风险?
class x
{
void xx() {}
};
class y
{
friend void x::xx();
};
Run Code Online (Sandbox Code Playgroud)
这会导致错误
错误:朋友函数'xx'是'x'的私有成员
为什么我不能声明私有成员函数成为另一个类的朋友?
ServerManagedPolicyGoogle在其许可证验证库中提供的默认值依赖于服务器响应来确定许可证重新验证间隔.这导致需要每隔几天重新确认一次,永久性.这不仅对用户造成麻烦,对于长时间没有连接的用户来说,这可能是一个严重的问题.(我们刚刚接到一位用户的询问,该用户预计几周内没有互联网连接,这就是推动这个问题的原因.)
总之,我正在寻找一种能够完成两件事的算法:
ServerManagedPolicy;在回答这个问题时,建议的策略算法是忽略来自Google服务器的响应中提供的时间,而是使用大约一个月的许可有效期,每隔几天尝试一次许可检查(如果延长有效期,收到许可的答复).
虽然这种方法部分地解决了第一个目标,但它仍然要求用户在使用应用程序时每月连接一次,因此它不适用于(至少一个)我们的用户.
以下算法完成了第一个目标,但我不知道第二个目标.任何评论指出该算法的弱点,或建议另一种方法,将是受欢迎的.
附加要点:
ServerManagedPolicy)相比,上述算法的相对风险(对我们而言)和对用户的好处.我尝试将注册表子项及其对应的值写入注册表,如下所示:
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\Banana中HKLM.
但是当我再次运行上面的代码并进行调试时,我可以看到两者Registry.LocalMachine.OpenSubKey(subKey)并rk.GetValue(regKey)产生之前保存的值.然而,我没有通过regedit看到给定位置的值.所以在搜索注册表时,我可以在以下位置看到上面的键和值:
HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Apple\Banana
HKEY_USERS\S-1-5-21-44266131-1313801407-2392705078-1000\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Apple\Banana
在两者之下,价值保持与我保存完全一样.所以我意识到这是我的应用程序读取值的地方虽然在我的代码中我称之为HKLM\SOFTWARE\Apple\Banana\..
为什么会这样?它与访问权限问题有关吗?
这是预期的行为吗?从某种意义上说,这个值对我来说非常重要,所以我只知道是否存在与自动重定位相关的风险!
是否有正确的方式写入注册表,以便它保持在其确切的位置..
我的帐户是管理员一,我使用的是32位Windows 7.
编辑:据我所知,注册表项存储在当前用户位置而不是HKLM中.当我从另一个帐户查询reg值时,我没有得到该值.简而言之,首先将它保存到HKLM没有意义:(
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.我有点失落,也会感激任何帮助.
access-rights ×10
c# ×2
c++ ×2
algorithm ×1
android ×1
android-lvl ×1
api ×1
batch-file ×1
c++11 ×1
class ×1
constructor ×1
couchdb ×1
friend ×1
google-play ×1
iis-express ×1
jar ×1
java ×1
regedit ×1
registry ×1
rest ×1
standards ×1
user-roles ×1
web-services ×1