Tag: 权限

如何在不使用P / Invoke或reflection的情况下在.NET中启用SeCreateGlobalPrivilege?

当服务器运行非提升时,我的net.pipe WCF绑定不起作用。 这个博客帮助我找到答案 – http://weblogs.thinktecture.com/cweyer/2007/12/dealing-with-os-privilege-issues-in-wcf-named-pipes-scenarios.html 因此,我将SeCreateGlobalPrivilege权限添加到相关的非管理员用户,但现在我必须在.NET中以编程方式启用该权限 现在,互联网上有几个例子如何在.NET中完成它,但它们都基本上用C / Invoke将普通C代码重写为C#。 我想知道如何使用专用的.NET系统类型,如ObjectSecurity,Privilege等,以便我的代码不做任何P / Invoke – 让系统代码为我做。 可能吗? 谢谢。 EDIT1 是什么让我觉得有可能? 好吧,我使用Reflector搜索.NET中的AdjustTokenPrivileges P / Inovke API用法,发现有ObjectSecurity.Persist方法,最终调用此P / Invoke。 接下来,此ObjectSecurity具有一个受保护的构造函数,这意味着非MS代码可以从中派生并调用此方法。 因此,使用类型安全的.NET代码(即没有reflection)似乎是可行的。

问题:在运行我的应用程序时使用Windows 7,未经授权的访问exception

我的应用程序引发了未经授权的访问错误 在运行我的应用程序时,我尝试访问以下位置中的目录:Application.UserAppDataPath。 问题:它表示我没有访问Application.UserAppDataPath目录的权限 有没有办法在我的应用程序源代码中设置权限? 就像是: Application.UserAppDataPath.SetPermissions()

将权限从一个Windows文件夹复制到另一个

我需要创建一个小型的C#Windows应用程序,它将安全权限从一个文件夹复制到另一个文件夹。 这包括复制组权限。 接近这种挑战的最佳方式是什么? Yosief Kesete

尝试写入事件日志时出错 – 无法打开源“SourceName”的日志。 您可能没有写访问权限

我们目前正在尝试将现有的经典ASP页面集成到我们记录到事件日志的新方法中。 我们通过将.NET程序集公开为COM对象来实现此目的,该对象执行实际日志记录到事件日志。 这一切都正常,但是当我们尝试写入事件日志时,我们收到错误“无法打开源’SourceName’的日志。您可能没有写访问权限。” 从aspx页面调用时,日志代码本身也可以工作。 这显然是IUSR_machinename帐户的权限问题,但是,通过查看其他一些相关post,我们尝试了许多解决方案而没有任何成功。 编辑HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services / EventLog / Application / RestrictGuestAccess – 将其设置为0 将IUSR_machinename添加到本地管理员组并删除来宾组 编辑CustomSD并将(A ;; 0x0002 ;;; AU)附加到此处的值 我们唯一的成功是使用ASP.NET模拟在服务器上使用新创建的本地管理员帐户。 使用此用户可以使用,但这是一种解决方法,而不是解决初始权限问题。 还有什么我们可以尝试使用IUSR_machinename帐户获取权限吗?

授予NTFS权限时丢失的inheritance权限

我试图为特定用户的UNC路径授予NTFS权限,但我看到不同的行为取决于UNC路径。 下面是我用于在每个场景中提供权限和结果的代码(来自MSDN ), static void GiveNTFSPermissions(string folderPath, string ntAccountName, FileSystemRights accessRights) { DirectorySecurity dirSecurity = Directory.GetAccessControl(folderPath); FileSystemAccessRule newAccessRule = new FileSystemAccessRule( ntAccountName, accessRights, AccessControlType.Allow); dirSecurity.AddAccessRule(newAccessRule); Directory.SetAccessControl(folderPath, dirSecurity); } 假设我的本地计算机上有一个名为“ RootShare ”的共享,并且其中有另一个文件夹“ InsideRootShare ”。 场景1:当我打电话时, GiveNTFSPermissions(@”\\sri-devpc\RootShare”, @”domain\username”, FileSystemRights.Write); 共享路径上丢失了inheritance的权限, 场景2:当我打电话时, GiveNTFSPermissions(@”\\sri-devpc\RootShare\InsideRootShare”, @”domain\username”, FileSystemRights.Write); inheritance的权限完好无损。 我尝试过FileSystemAccessRule不同构造函数,但没有运气。 这种行为背后的原因是什么,以及针对此的任何解决方法?

如何检查是否可以在特定文件夹中创建文件

我需要知道我是否可以在特定文件夹中创建文件,但是有太多东西需要检查,例如权限,重复文件等。我正在寻找类似File.CanCreate(@”C:\myfolder\myfile.aaa” ),但还没有找到这样的方法。 我唯一想到的是尝试创建一个虚拟文件并检查exception,但这是一个影响性能的无法解决方案。 你知道更好的解决方案吗?

使用用户名和密码在C#中启动进程会抛出“拒绝访问”exception

在运行模拟的.NET 3.5 Web应用程序中,我试图通过以下方式执行进程: var process = new Process { StartInfo = { CreateNoWindow = true, FileName = “someFileName”, Domain = “someDomain”, Username = “someUserName”, Password = securePassword, UseShellExecute = false } }; process.Start(); – 在web.config中将信任模式更改为完全没有修复。 – 注意var securePassword是在代码中先前设置的secureString。 这会抛出“Access is Denied”作为其消息的exception。 如果我删除用户名和密码信息,则exception消失,但该过程以aspnet_wp而不是我需要的用户开始。 我在多个论坛上看过这个问题,从未见过提供过的解决方案。 有任何想法吗?

获取/设置注册表ACL“SeSecurityPrivilege”时出现C#随机exception

我已经得到一个完全随机的exception,我可以运行1000次相同的代码集(每个“运行”是程序的完整结束,因此从命令行开始作为自己的进程然后存在)并得到它失败一次,甚至150次。 我的意思是我可以一遍又一遍地回溯它,它会完全随机失败。 System.Security.AccessControl.PrivilegeNotHeldException: The process does not possess the ‘SeSecurityPrivilege’ privilege which is required for this operation. at System.Security.AccessControl.Win32.GetSecurityInfo(ResourceType resourceType, String name, SafeHandle handle, AccessControlSections accessControlSections, RawSecurityDescriptor& resultSd) at System.Security.AccessControl.NativeObjectSecurity.CreateInternal(ResourceType resourceType, Boolean isContainer, String name, SafeHandle handle, AccessControlSections includeSections, Boolean createByName, ExceptionFromErrorCode exceptionFromErrorCode, Object exceptionContext) at System.Security.AccessControl.RegistrySecurity..ctor(SafeRegistryHandle hKey, String name, AccessControlSections includeSections) at Microsoft.Win32.RegistryKey.GetAccessControl(AccessControlSections includeSections) […]

将文件复制到我没有权限的目录(c:或c:程序文件)

可能重复: 允许访问权限在Windows 7的Program Files中写入 好的,这是我的代码: System.IO.File.WriteAllBytes(path1, path2); 但是,有一个问题。 用户(Windows 7用户没有权限将文件复制到c:默认情况下)(…我的意思是程序…)因此,程序失败。 如果用户允许在c中复制文件:程序运行正常。 但你不能告诉每个用户“去许可……….”所以我怎样才能让用户将我的文件复制到c://

设置目录和子项的权限

我的程序复制一些目录,子目录和文件从服务器到本地计算机。 我需要,每个本地用户都可以修改它(编辑/删除/删除/重命名)。 但现在它只能做主人。 如何为复制的目录及其子项设置必要的权限? 我尝试这样的代码: String account = Path.Combine(Environment.MachineName, “Users”); FileSystemRights rights = FileSystemRights.FullControl; AccessControlType controlType = AccessControlType.Allow; DirectorySecurity security = local_commonDir.GetAccessControl(AccessControlSections.Access); FileSystemAccessRule rule = new FileSystemAccessRule(account, rights, controlType); security.AddAccessRule(rule); local_commonDir.SetAccessControl(security); 但是我得到了例外: 某些或属性的链接无法转换。 如果我添加缺少访问控制,则不存在错误。 我认为因为“用户”已经存在而收到错误。 如何改变现有权利?