当前位置:编程学习 > C#/ASP.NET >>

如何实现更改文件夹的权限?

我的程序时在System权限上运行。
1.创建文件夹。
2.进行一系列操作。
3.切换用户(或者伪装为另外一个用户。假设这个用户名为test。test隶属于users组)。
4.在step1中生成的文件夹里写文件。
5.用户切换回复(回复到System权限)。
6.进行一系列操作。
.
.
.

在上面的处理流程中,step4存在问题。文件写入失败。
原因是,只有system权限的用户可以stemp1中创建的文件夹中写入文件。
test用户是没有这个权限的。所以写入失败。

能不能在step1中,在创建文件夹时指定权限。时test用户能够拥有写入权限?
测试环境:2000,xp,vista,win7


由于业务原因,处理流程是不能被改变的。

各位,帮忙啊。分值不够,可以加+++++ --------------------编程问答-------------------- 啊啊。有错别字。谅解。 --------------------编程问答-------------------- 太有才了。
解决了。


if(isDirFileExist(subDir) != 0){
SECURITY_ATTRIBUTES sa;
SECURITY_DESCRIPTOR sd;

InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&sd,TRUE,NULL,FALSE);
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE;
sa.lpSecurityDescriptor = &sd;
if(0== CreateDirectory(subDir,&sa)){
log_info("Create Sub Directory [" + subDir + "] : FAILED");
return -1;
}else{
log_info("Create Sub Directory [" + subDir + "] : OK");
}
}
--------------------编程问答-------------------- --------------------编程问答--------------------
引用 2 楼 moonho 的回复:
太有才了。
解决了。


C/C++ code

if(isDirFileExist(subDir) != 0){
            SECURITY_ATTRIBUTES sa;
            SECURITY_DESCRIPTOR sd;

            InitializeSecurityDescriptor(&sd,SECURITY_D……


恭喜LZ --------------------编程问答--------------------

结贴吧 --------------------编程问答-------------------- if(isDirFileExist(subDir) != 0){
            SECURITY_ATTRIBUTES sa;
            SECURITY_DESCRIPTOR sd;

            InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION);
            SetSecurityDescriptorDacl(&sd,TRUE,NULL,FALSE);
            sa.nLength = sizeof(SECURITY_ATTRIBUTES);
            sa.bInheritHandle = TRUE;
            sa.lpSecurityDescriptor = &sd;
            if(0== CreateDirectory(subDir,&sa)){
                log_info("Create Sub Directory [" + subDir + "] : FAILED");
                return -1;
            }else{
                log_info("Create Sub Directory [" + subDir + "] : OK");
            }
        }

哈哈…… --------------------编程问答--------------------
引用 2 楼 moonho 的回复:
太有才了。
解决了。


C/C++ code

if(isDirFileExist(subDir) != 0){
            SECURITY_ATTRIBUTES sa;
            SECURITY_DESCRIPTOR sd;

            InitializeSecurityDescriptor(&sd,SECURITY_D……





楼主还是挺厉害的嘛 --------------------编程问答--------------------
引用 2 楼 moonho 的回复:
太有才了。
解决了。


C/C++ code

if(isDirFileExist(subDir) != 0){
            SECURITY_ATTRIBUTES sa;
            SECURITY_DESCRIPTOR sd;

            InitializeSecurityDescriptor(&sd,SECURITY_D……


恭喜LZ
补充:.NET技术 ,  VC.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,