【问题标题】:Windows Authentication & Folder Read AccessWindows 身份验证和文件夹读取权限
【发布时间】:2015-11-10 21:39:07
【问题描述】:

我有一个文件夹,用于存储我的所有应用程序。现在“每个人”都拥有对该文件夹的读取权限,并且某些子文件夹对每个人都有完全的访问权限,以便他们能够通过我的网络应用程序存储文件。

我正在使用 Windows 身份验证来检索用户当前登录的用户名。

我想禁用用户(显然是“所有人”组的一部分)浏览我的应用程序文件夹的内容并查看我的应用程序文件(并删除某些文件)的选项。我尝试使用匿名身份验证,它工作正常,但我无法检索用户登录时使用的用户名。

有什么建议吗?我迷路了。

【问题讨论】:

  • 在会话变量中存储用户名怎么样?
  • @ImadoddinIbnAlauddin 我首先从哪里获得用户名?
  • @ImadoddinIbnAlauddin 我不在我的应用程序中使用任何登录页面。我工作的公司有一个封闭的网络,每个用户只需访问应用程序即可识别,并根据用户名相应地授予权限。
  • 为什么不直接更改文件夹的权限?
  • @HarryJohnston 如果登录用户没有读取文件夹的权限,在使用 Windows 身份验证时,他将无法访问该网站。

标签: asp.net iis file-permissions windows-authentication


【解决方案1】:

尝试获取寡妇身份然后提取其名称属性。

    WindowsIdentity identity = HttpContext.Current.Request.LogonUserIdentity;
    string username =  identity.Name;

【讨论】:

  • 如果应用程序设置为匿名身份验证,它不会给我我想要的 - 而是打印“NT AUTHORITY\NETWORK SERVICE”作为我的用户名。如果它设置为 Windows 身份验证,如果我不将应用程序的文件夹“读取”权限设置为我的用户所属的组,我将无法访问该网站。相反,它会提示我一个登录屏幕,我应该在其中输入我的用户名和密码以进行识别。
  • 我想我误解了你的要求。为什么要将 Windows Auth 更改为 Anonymous Auth?
  • 这是我设法限制用户访问我的服务器中“应用程序”文件夹的物理路径的唯一方法。我授予应用程序池对该文件夹的完全访问权限,现在当用户通过网站 url 访问我的一个应用程序时,它会模拟应用程序的池权限并授予他对应用程序文件夹的访问权限,但是,用户将无法访问文件夹通过文件路径 (\\webserver\applications\..)。尽管如此,我还是无法以这种方式获取登录用户名。
  • 更改共享的权限,或将其删除。
猜你喜欢
  • 2017-05-05
  • 2011-03-25
  • 1970-01-01
  • 1970-01-01
  • 2016-11-07
  • 2021-03-10
  • 2017-05-28
  • 2019-01-22
  • 1970-01-01
相关资源
最近更新 更多