gpt4 book ai didi

asp.net - 无需模拟的 IIS 7.5 集成身份验证 NTFS 文件夹权限

转载 作者:行者123 更新时间:2023-12-02 03:35:01 27 4
gpt4 key购买 nike

这个问题与我以前见过的许多问题类似,但我还没有找到明确的答案,所以我会尽量在这里非常具体以避免重复。

我们在 2008R2 上运行 IIS7.5, Windows 身份验证打开(无匿名)且无模拟。有一个为应用程序池用户指定的网络帐户。

当我检查当前正在执行的页面的 WindowsIdentity.GetCurrent() 时,我根据我们的配置获得了预期的(应用程序池)用户。

http://www.mikeobrien.net/blog/identities-for-different-iis7/

这很好地符合预期。但是,我们的应用程序上的 NTFS 文件夹权限似乎正在根据经过身份验证的用户的身份进行检查。

这似乎与我找到的大部分文档相矛盾。以上链接以及

http://msdn.microsoft.com/en-us/library/kwzs111e(v=vs.100).aspx

http://msdn.microsoft.com/en-us/library/3yfs7yc7(v=vs.100).aspx

http://msdn.microsoft.com/en-us/library/gg703322%28v=vs.98%29.aspx

当 .Net 清楚地表明正在使用的 WindowsIdentity 是应用程序池的 WindowsIdentity 时,IIS 如何检查文件夹 ACL 中经过身份验证的用户的身份?

到目前为止,我唯一的理论是文件授权模块自动与集成身份验证一起使用,并且它正在明确检查这一点......但它似乎仍然违背了文档中的预期。

http://msdn.microsoft.com/en-us/library/gg703322%28v=vs.98%29.aspx

例如,这篇文章似乎记录了两种期望。

When Windows authentication is enabled but impersonation is disabled, ASP.NET performs file access checks in the file authorization module using the credentials that are sent from the browser. Impersonation does not need to be enabled, because the FileAuthorizationModule module ensures that the requesting user is allowed read access or write access to the resource, depending on the request verb (for example, GET or POST) before executing the request.

几行之后

Windows authentication without impersonation. This is the default setting. ASP.NET performs operations and accesses resources by using your application's process identity, which by default is the application pool identity on Windows 7 and Windows 2008 R2. For more information, see Application Pool Identities.

Windows authentication with impersonation. With this approach, the Web application impersonates the authenticated user and uses that identity to perform operations and access local resources. When you configure your application for impersonation, an impersonation token for the authenticated user is attached to the Web request thread. As a result, all local resource access is performed using the caller's identity.

我的问题:

执行文件系统 ACL 检查时应该使用什么身份? (我的理解是模拟 = 关闭时的应用程序池)以及哪些设置可能会影响在模拟之外使用的身份?

这与这个问题非常相似:

Does an IIS 7.5 web app with windows authentication require end users to have file permissions?

这个问题上的标记答案没有解决我的问题。不应要求授权“经过身份验证的用户”组,因为所使用的身份不应依赖于被授权的最终用户集。我的问题更具体,是哪个身份以及如何控制它?

最佳答案

“IIS 7.5 中的新功能

IIS 7.5 向该元素添加了 authenticatedUserOverride 属性,该属性配置 IIS 7 服务器运行时是否将在 IHttpUser::GetPrimaryToken 和 IHttpUser::GetImpersonationToken 方法中提供经过身份验证的用户身份或工作进程身份。此属性可以设置为 UseAuthenticatedUser 或 UseWorkerProcessUser,这些值分别指定 IIS 7 服务器运行时是否为使用模拟的任何模块提供经过身份验证的用户身份或工作进程身份。”

Source

关于asp.net - 无需模拟的 IIS 7.5 集成身份验证 NTFS 文件夹权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24059305/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com