即使设置了模拟,ASP.NET 仍以 ASPNET 的身份访问文件夹

Posted

技术标签:

【中文标题】即使设置了模拟,ASP.NET 仍以 ASPNET 的身份访问文件夹【英文标题】:ASP.NET access a folder as ASPNET even though impersonation is set 【发布时间】:2010-04-08 23:13:35 【问题描述】:

我的 ASP.NET web.config 设置为模拟

<identity impersonate="true" userName="domainName\userName" password="userPassword" />

我正在运行一些类似的方法

IO.Directory.GetFiles(somePath)

并使用Process Monitor监控文件系统访问 我以ASPNET 用户的身份不断获取从 aspnet_wp.exe 进程到文件夹的所有访问请求。 为什么我看不到模拟用户的访问权限?

【问题讨论】:

你在这个属性上有什么:System.Security.Principal.WindowsIdentity.GetCurrent().Name?你应该有模拟的用户名 【参考方案1】:

我猜你有匿名访问权限吗?

因此它将使用系统帐户...see

禁用匿名访问,它将使用模拟帐户。

【讨论】:

嗯。我不认为是这样。他在身份标签上设置了用户名和密码。 我确实有“匿名访问”。但是我有其他项目具有相同的设置,没有任何模拟问题 不确定您对托管事物的意思。但是在这里你有模仿的参考。每个可能的选项会发生什么。 msdn.microsoft.com/en-us/library/aa292118%28VS.71%29.aspx。如果该站点是公开的,您如何期望用户在没有匿名访问的情况下访问它??【参考方案2】:

@Nix 的回答听起来可能符合要求,但您还应该在 .config 文件中检查您的授权,以确保它们不会以某种方式与您的模拟冲突。请查看此问题以简要讨论授予/拒绝的主题,以及已接受答案中的链接以及更多信息。

Why is <deny users="?" /> included in the following example?

顺便说一句,我之前没有与假冒和匿名​​访问发生冲突,所以...

【讨论】:

以上是关于即使设置了模拟,ASP.NET 仍以 ASPNET 的身份访问文件夹的主要内容,如果未能解决你的问题,请参考以下文章

identity与ASP.NET 模拟

asp.net以及JS相关问题

asp.net怎么用上传控件,上传图片!

为每一个应用程序池单独设置aspnet.config配置文件

ASP.NET Core 中的 Windows 身份验证模拟是不是已死?

asp.net中添加新项目后,怎样互相引用?