软件设置特定的用户启动和右键管理员启动有什么区别?

pig357 2019-05-15 09:48:09
环境:VS2017 framework4.5.2 wpf
问题:项目中需要实现一个功能,数据文件夹只能由软件来进行浏览、删除等操作,用户不能通过其他方式操作或手动操作该文件夹。所以我想的方法是给该文件夹添加访问权限的方式。具体为:添加2个Windows用户admin1和admin2,设置admin1不能操作文件夹,设置admin2可以操作文件夹,然后Windows用户用admin1登录,然后软件启动时设置用户为admin2,这样只有软件可以操作该文件夹了。

其他部分基本是没有问题的,就是软件中有一个命名管道的通信方法,会报错,提示权限不足。我使用右键以管理员运行没有问题,但以启动时设置用户为admin2(admin2本身也是管理员)报错,不知道这个和右键管理员运行有什么区别??

启动时传入用户名的代码如下:
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.UseShellExecute = false;
startInfo.WorkingDirectory = Environment.CurrentDirectory;
startInfo.FileName = System.Configuration.ConfigurationManager.AppSettings["exeName"];

string username = null, pwd = null;
startInfo.Verb = "runas";
username = System.Configuration.ConfigurationManager.AppSettings["adminName"]; //admin2,管理员账号
pwd = System.Configuration.ConfigurationManager.AppSettings["adminPwd"];

SecureString pwds = new SecureString();
foreach (var c in pwd.ToCharArray())
{
pwds.AppendChar(c);
}
startInfo.UserName = username;
startInfo.Password = pwds;
System.Diagnostics.Process.Start(startInfo);


请问一下,这样启动软件和右键管理员启动软件有什么区别?该如何修改?
...全文
139 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pig357 2019-05-16
  • 打赏
  • 举报
回复

引用 1 楼 jx315425246 的回复:
就是软件中有一个命名管道的通信方法,是否调用了底层操作?

是C#的接口封装的,估计没有吧,而且在右键管理员运行是没有问题的。


引用 2 楼 Summer_djz 的回复:
admin2可能只有管理员的某些权限而已,右键管理员运行应该是以administrator账号的权限运行


请问有什么办法可以实现和右键管理员一样的效果?
牧歌ing 2019-05-16
  • 打赏
  • 举报
回复
admin2可能只有管理员的某些权限而已,右键管理员运行应该是以administrator账号的权限运行
jx315425246 2019-05-16
  • 打赏
  • 举报
回复
这个进程已取得权限,是管道操作时权限不够,你可以单测试管道,用admin2登录测试一下管道,找到权限原因
jx315425246 2019-05-16
  • 打赏
  • 举报
回复
就是软件中有一个命名管道的通信方法,是否调用了底层操作?

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧