Tag: 权限

如何使用c#显示文件保存到受限位置的UAC提示?

当用户从我的应用程序中保存文件时,他们当前无法保存到受限制的位置(如C :)。 我认为这是一个很好的限制,但我想提供一个UAC提示来提升权限并允许用户保存在受限制的区域。 我已经看到很多关于这个主题的答案,涉及使用’runas’产生具有提升权限的新进程。 此外,似乎可以通过冒充其他用户来完成。 据我所知,这两种方法都要求用户提供用户凭据。 我想要做的基本上就是Windows本身的function。 当您尝试将文件复制到Windows 7中的C:\时(假设您已将UAC设置为其默认级别),您将收到以下提示: 单击带有UAC屏蔽的“继续”按钮后,该文件将复制到C:\,并且不提示输入凭据(假设您已使用管理员权限登录)。 如何在管理员用户的应用程序中复制此行为? 他们不应该冒充任何其他用户,因为他们已经拥有管理员权限。 任何人都可以提供有关Windows在此过程中所做操作的详细信息吗 它们是否使用提升的权限生成新的explorer.exe进程?

如何在代码中配置我的Windows服务以访问桌面?

我创建了一个Windows服务。 我想从这个服务打开一些基于Windows的应用程序。 但我的Windows服务无法启动桌面应用程序。 要启用访问权限,我必须执行以下步骤: 打开管理工具“服务” 右键单击我的服务,必须选择“属性” 然后在“登录”选项卡上,选择“允许服务与桌面交互”。 之后,我的服务可以打开所需的基于Windows的进程。 我可以在代码(C#)中配置我的Windows服务来访问桌面,这样我就不必在安装后手动更改访问权限了吗?

删除所有目录权限

在C#(2.0)中如何删除目录的所有权限,因此我可以限制访问权限。 我将向一组有限的用户添加访问权限。

使用.NET远程读取事件日志

我想阅读远程计算机上的事件日志,以检查测试期间的错误。 这是一些相关的代码: public bool CheckEventLogs(DateTime start) { EventLog myEventLog = new EventLog(“CustomLog”, “ServerName”); bool errorFound = false; foreach (EventLogEntry entry in myEventLog.Entries) { if (entry.EntryType == EventLogEntryType.Error && entry.TimeGenerated >= start) { Console.WriteLine(“Error in Event Log:\n” + entry.Message + “\n”); errorFound = true; } } return errorFound; } 目前,此代码抛出exception(尝试执行未经授权的操作)。 根据MSDN ,我需要EventLogPermission,但我一直在努力寻找如何使用此权限的任何示例。 有没有人有一个如何做到这一点的例子? 编辑:对评论的回应 感谢大家的评论 – […]

具有MVC站点的某些要求的细化权限

我不喜欢内置的会员提供商。 我决定自己动手。 我正在努力想出一个在动作级别执行授权的好方法。 以下是我要求的要求: 属性用法 – 我喜欢这个,因为它在调用堆栈中控制得非常高,并且是组织权限的好地方。 没有神奇的字符串 – 这就是我偏离当前角色提供者的原因。 我不想留下那些不能轻易重命名的字符串。 权限应该由另一个权限组成。 示例: ReadWrite具有Read权限。 就像或用enum一样。 注意:有些人认为这套要求过于宽泛(见评论)。 我不这么认为,我认为它们相当简单。 最大的showstopper是属性使用。 只能有“常量表达式,typeof表达式或属性参数类型的数组创建表达式”。 我想也许有这样的东西让操作具有静态访问权限。 在属性内部,它会将int“转换”为实际的Permission或者……: public static class Operations { public static class SectionA { public const int Read = 1; public const int ReadWrite = 2; } public static class SectionB { // … and so on… } […]

使用C#获取服务器和映射驱动器的ACL列表

我们IT团队的生产变更实施人员的任务是审查我们集团中所有各种对象的安全性,主要是为了确保离开我们的员工或已转移到其他组的人员不再能够访问我们的服务器共享我们最近完成了SQL部分,我们有一个可重复使用的脚本,可以每年运行一次(或者我们提出的任何频率)。 它工作得很好,我们在10分钟左右的服务器上审核了20个数据库,只需几分钟。 现在,对于服务器的东西。 我有一个使用.NET 2.0在C#中编写的应用程序,它将递归扫描目录列表并将ACL转储到文本文件中。 这很好用。 在本地机器上。 UNC和映射路径不起作用,我得到以下exception消息:该进程不具有此操作所需的“SeSecurityPrivilege”权限。 在这一行: DirectorySecurity DirSec = di.GetAccessControl(AccessControlSections.All); 其中di是从DirectoryInfo []数组枚举的DirectoryInfo对象。 我们不太可能被授予SeSecurityPrivilege特权。 但是我不认为这是必要的。 我可以打开文件夹并右键单击属性,然后单击安全选项卡并在GUI中查看它。 我也应该能够以编程方式访问它。 有关如何更改此部分代码以获取目标文件夹权限的任何想法? private void CheckSecurity(DirectoryInfo[] DIArray) { foreach (DirectoryInfo di in DIArray) { DirectorySecurity DirSec = di.GetAccessControl(AccessControlSections.All); string sAccessInfo = string.Empty; foreach (FileSystemAccessRule FSAR in DirSec.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount))) { sAccessInfo += GetAceInformation(FSAR); } if (sAccessInfo != string.Empty) […]

即使具有管理员权限,Process.kill()在Windows 7 32位中被拒绝

大家好。 我遇到了一个奇怪的问题。 我的应用程序有一个简单的方法,如果IE进入一个状态是它得不到响应这个方法被解雇所有IE进程,然后应用程序重新启动它与IE的工作。 方法代码: foreach (System.Diagnostics.Process exe in System.Diagnostics.Process.GetProcesses()) { if (exe.ProcessName.StartsWith(“iexplore”)) exe.Kill(); } 即使使用管理员权限调试我的应用程序,应用程序有时也会成功运行此方法,有时我会收到错误Access Denied甚至以管理员身份运行。 我甚至编写了我自己的清单文件,指定需要使用管理员权限执行此应用程序,我认为我做对了。 清单代码: 以前有人有这个问题吗? 我怎样才能纠正这个奇怪的问题。 谢谢

字段或属性\“ListItemAllFields \”不存在exception

下面的代码归功于Vadim Gremyachev。 我的目标是使用CSOM授予用户对某些SharePoint文件夹的访问权限。 我试图实现的目标是访问名为JZhu的库,在JZhu库中,我有两个文件夹folder1和folder2 。 我正在尝试向folder1授予Reader权限。 到目前为止代码没有工作,因为我在第6行得到例外说: 字段或属性\“ListItemAllFields \”不存在 ClientContext context = new ClientContext(“http://myRealUrl”); Principal user = context.Web.EnsureUser(@”myLoginAccout”); var folder = context.Web.GetFolderByServerRelativeUrl(“JZhu/folder1”); var roleDefinition = context.Site.RootWeb.RoleDefinitions.GetByType(RoleType.Reader); //get Reader role var roleBindings = new RoleDefinitionBindingCollection(context) { roleDefinition }; folder.ListItemAllFields.BreakRoleInheritance(true, false); //line 6 folder.ListItemAllFields.RoleAssignments.Add(user, roleBindings); context.ExecuteQuery();

如何为SPItem授予SPGroup权限?

我试图找到一个简单的例子,如何为列表项Z提供一个特定的Sharepoint组X,一个权限级别Y,但是找不到示例代码。 我可以为项目分配特定用户权限(在本例中为“Reader”)的最短代码如下: SPRoleDefinition spRole = spWeb.RoleDefinitions[“Reader”]; SPRoleAssignment roleAssignment= new SPRoleAssignment(“//myDomain/myUser”, “none@example.org”, “Name”, “Notes”); roleAssignment.RoleDefinitionBindings.Add(spRole); SPListItem listItem = spWeb.GetListItem(“http://”); listItem.BreakRoleInheritance(true); listItem.RoleAssegnments.Add(roleAssignment); listItem.Update(); 我知道SPRoleAssignment.Add也可以采用SPPrincipal ,而SPPrincipal又是一个组 – 我只是不知道怎么写它。 请给我一些示例代码,了解如何将具有“Reader”权限级别的现有Sharepoint组(例如“MyGroup”)添加到我的项目中。

使用.NET设置注册表项写入权限

我正在尝试在安装过程中向我的应用程序的注册表设置授予对计算机的每个人或所有用户的写访问权限。 我的应用程序在安装后没有直接具有适当的权限,而不需要管理员授予它们,即使密钥和值存在,它们也无法更新? 我有下面的代码段,但是由于未经授权的访问/访问被拒绝,安装程序失败了。 我想我走在正确的轨道上…… 如何在不需要手动注意的情况下解决权限问题? 有更好的方法吗? 我正在尝试通过添加此function来替换Visual Studio设置中的其他安装程序。 protected void GrantAllAccessPermission(String key) { try { SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null); NTAccount account = sid.Translate(typeof(NTAccount)) as NTAccount; // Get ACL from Windows, allow writing to the registry key using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(key, true)) { RegistrySecurity rs = new RegistrySecurity(); // Creating registry access rule […]