Tag: permissions

FileSystemWatcher – 目标目录所需的最小权限?

使用.NET FileSystemWatcher http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx监视一个充满文件的目录:Changed; 创建; 删除; 重命名事件。 运行FileSystemWatcher的帐户对其正在观看的目录所需的权限最小的是什么? 它似乎是READ,但我无法在任何地方找到记录。 谢谢

C#代码,用于设置远程共享以从其父目录inheritance权限

我在Windows域中有两台计算机,称为客户端和服务器。 服务器有一个共享目录,可以从客户端计算机访问。 我想在客户端上运行C#应用程序,该应用程序设置此共享的权限以inheritance服务器上共享的父目录的权限。 我该怎么做呢? 我已尝试过以下几行代码,但我认为它没有正确的效果: DirectoryInfo shareDirectoryInfo = new DirectoryInfo(“\\server\share”); DirectorySecurity directorySecurity = shareDirectoryInfo.GetAccessControl(); directorySecurity.SetAccessRuleProtection(false, false); InheritanceFlags iFlags = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit; FileSystemAccessRule accessRule = new FileSystemAccessRule(“Everyone”, FileSystemRights.FullControl, iFlags, PropagationFlags.InheritOnly, AccessControlType.Allow); bool modified; directorySecurity.ModifyAccessRule(AccessControlModification.Set, accessRule, out modified); if (modified) { Directory.SetAccessControl(name, directorySecurity); } 我想我不明白为什么我必须为目录创建一个FileSystemAccessRule – 我怎么能说从父进行inheritance呢? 谢谢你的帮助! 马丁

在C:\驱动器权限问题中写入文件

我用c#开发了一个win应用程序,它在c:\驱动器的文件夹中生成文件。 当尝试生成文件时,然后出现权限问题,但是当应用程序在C:\之外的其他驱动器中生成文件时,则不会出现问题。 因此,当我将我的应用程序设置分发给最终用户时,我不确定将安装我的应用程序的用户是否具有在C:\驱动器中生成文件的权限。 所以指导我如何克服这个问题。 我应该使用清单在win OS中提升应用程序吗? 我有一些文章 http://blogs.msdn.com/b/nikhiln/archive/2007/04/19/embed-a-manifest-to-make-an-application-elevate-in-vista.aspx http://www.codeproject.com/Articles/105506/Getting-Elevated-Privileges-on-Demand-using-C http://archive.msdn.microsoft.com/KB981778 等……请用正确的知识指导我。 谢谢

如何在C#中的AD LDS条目上获得用户的有效权限?

我有使用AD LDS存储其分层数据的第三方应用程序,我需要在ASP.NET MVC中为此系统提供Web UI。 它在目录条目上使用DACL来控制用户对各个条目的访问权限。 我发现很少有好文章解释如何读取DirectoryEntry ActiveDirectoryAccessRules ,但我找不到任何有效的方法来计算特定用户的有效权限 。 是否有任何支持Microsoft API或库可用,或者我需要发明自己的方式? 调查类似主题的人的参考URL: 编写自己的AD / ADAM权限编辑器 – 3 .NET开发人员目录服务编程指南 C#中的访问控制列表

文件夹权限:授予所有用户完全控制权限

我正在开发一个应用程序,它将一些文件存储在CommonApplicationData文件夹中。 我的应用程序必须修改这些文件。 我设法创建一个自定义操作,以授予CommonApplicationData文件夹中我的应用程序文件夹的完全控制权限。 但这并没有解决非管理员用户的问题。 当我以用户身份登录并尝试修改其中一个文件时,我收到“拒绝访问”消息。 我怎么解决这个问题? 谢谢。 这是我在自定义操作中使用的代码: public void GetUsers() { SelectQuery sQuery = new SelectQuery(“Win32_UserAccount”, “Domain='” + System.Environment.UserDomainName.ToString() + “‘”); try { ManagementObjectSearcher mSearcher = new ManagementObjectSearcher(sQuery); foreach (ManagementObject mObject in mSearcher.Get()) { Permission(mObject[“Name”].ToString()); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void Permission(string user) { string directory = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); string […]

读取C#中目录的权限

我注意到如果您更改特定目录的安全设置,您可以使该文件夹不再在Windows中“浏览”。 特别是,将管理员的“读取”权限更改为“拒绝”将使该文件夹无法访问。 我现在的问题是,我如何在代码中解决这个问题? 我跟着让我接近,但它仍然是不对的: /// /// Takes in a directory and determines if the current user has read access to it (doesn’t work for network drives) /// THIS IS VERY HACKY /// /// directoryInfo object to the directory to examine /// true if read access is available, false otherwise public static bool IsDirectoryReadable(DirectoryInfo dInfo) { […]

Active Directory中的用户/组权限

我在哪里可以找到执行以下操作的示例? 从Active Directory中提取用户。 获取用户所属的组。 获取分配给每个组的权限列表。 这似乎是一个简单的任务,但我找不到解决方案。 总体目标是分配自定义权限并使用它们来控制应用程序中的权限。

仅当使用NetworkService时,站点才会使用ApplicationPoolIdentity在本地启动:“HTTP错误503.服务不可用”。

我希望从社区获得一些帮助,我开始提出这个问题,但在完全解释和详细说明我的问题的过程中,似乎我已经设法解决了它,似乎是一种合法的非hackish方式(请告诉我如果我错的话,所以我会把它放在这里,希望它会帮助别人。 题 我正在将Visual Studio 2010 .NET 4 MVC4站点升级到Visual Studio 2013 .NET 4.5 MVC5。 使用Visual Studio IIS时,该站点运行正常,但当我将其切换到Windows IIS并将用户设置为ApplicationPoolIdentity并启动该站点时,我得到一个页面,上面写着“HTTP错误503.服务不可用。”,以及ApplicationPool被停止了。 我发现有几个问题在StackOverflow上问同样的事情,但没有一个问题有可接受的解决方案。 一个答案是右键单击AppPool> AdvancedSettings> LoadUserProfile = FALSE。 这确实有用,我和它一起使用了一段时间,但我发现它导致了PhantomJS加载外部脚本的问题。 我通过将AppPoolUser设置为NetworkService并将LoadUserProfile设置为FALSE(仍然破坏了PhantomJS)进行了测试,然后将LoadUserProfile设置为TRUE并且它工作正常。 所以我使用NetworkService运行网站,这一切都很好,但我希望能够在完成此升级时使用ApplicationPoolIdentity,以便我可以在生产中使用ApplicationPoolIdentity。 我检查了EventViewer,我收到很多警告,告诉我无法复制文件 \\?\C:\Users\Default\AppData\Roaming\Microsoft\Templates\LiveContent\Managed\SmartArt 至 \\?\C:\Users\TEMP.IIS APPPOOL.004\AppData\Roaming\Microsoft\Templates\LiveContent\Managed\SmartArt Graphics\1033\TC101793893[[fn=Tabbed Arc]].glox. 我创建了一个名为APPPOOL.004的文件夹,然后它抱怨了APPPOOL.005,然后是APPPOOL.006,它就一直在继续。 解 然后,我将ApplicationPoolIdentity的完全权限授予C:\ Users文件夹,再次启动该站点,一切正常,配置文件必须已正确创建,并且我的网站正常工作。 然后,我从ApplicationPoolIdentity中删除了对C:\ Users的访问权限,该网站仍然可以正常工作。

重复GetAccessRules,FileSystemAccessRule条目

我从以下代码中获取了一个重复的FileSystemAccessRule: C:\inetpub\wwwroot\AspInfo\Account BUILTIN\IIS_IUSRS : Allow : ReadAndExecute, Synchronize BUILTIN\IIS_IUSRS : Allow : -1610612736 NT SERVICE\TrustedInstaller : Allow : FullControl NT SERVICE\TrustedInstaller : Allow : 268435456 我无法弄清楚它是什么或为什么。 并且显示的权限与我可以看到的文件FileManager属性不匹配。 例如,如何从此迭代或类似迭代中找到“列出文件夹内容”权限。 如果有人知道.NET文档中的示例,那将会有所帮助。 protected void directoryInfo() { var di = new DirectoryInfo(Server.MapPath(“/”)); foreach (DirectoryInfo dir in di.GetDirectories()) { Response.Write(dir.FullName + “”); DirectorySecurity ds = dir.GetAccessControl(); foreach (FileSystemAccessRule fsar in […]

在C#中设置文件的UAC设置

我想给一个文件(已经存在于客户端计算机上.exe)权限,以便始终使用管理权限执行。 请注意,我想要授予权限的文件已经在目标计算机上。 我想通过用c#编写的另一个程序来更改该文件的权限,并且它具有执行所有操作的管理权限。 请让我知道如何使用此代码 System.Security.AccessControl.FileSecurity fs = File.GetAccessControl(@”c:\inam.exe”); FileSystemAccessRule fsar = new FileSystemAccessRule(“Everyone”, FileSystemRights.FullControl, AccessControlType.Allow); fs.AddAccessRule(fsar); File.SetAccessControl(@”c:\inam.exe”, fs); 此代码将正确更改权限但仍然在执行此代码后执行inam.exe时UAC未出现,并且inam.exe也无法执行管理操作。 实际上我已经在10,000多个客户端上部署了一个应用程序,因此想要发布一个补丁来解决管理权限问题。