即使设置了模拟,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 的身份访问文件夹的主要内容,如果未能解决你的问题,请参考以下文章
为每一个应用程序池单独设置aspnet.config配置文件