【发布时间】:2013-12-14 11:58:39
【问题描述】:
我遇到了最奇怪的问题,我希望一些 ASP.NET 专家能给我一些关于发生了什么的线索。
我有一个在 IIS 6.0 上运行的 ASP.NET 网站。在它上面,我有一个 .asmx 网络服务。在 .asmx 网络服务中,我使用 System.IO.File.Exists() 检查网络共享上是否存在文件。该网站使用模拟。
这是一个巨大的问题:如果我将 IIS 设置为使用基本身份验证运行该站点,则 File.Exists 行将返回 True。如果我将其设置为集成 Windows 身份验证,它将返回 False。我没有改变其他任何东西,我可以来回改变并且完全相同的事情发生。我在调用File.Exists() 之前记录了一些信息,事实上,无论设置如何,User.Identity.Name 和System.Security.Principal.WindowsIdentity.GetCurrent().Name 都返回完全相同的名称(我自己的帐户显然可以访问我正在寻找的文件)。
我会发布我尝试过的东西,但老实说,在这种情况下你可以尝试什么,其中一个不应该影响问题的设置就是问题。我尝试关闭模拟,这也使 File.Exists() 调用返回 True(这让我大吃一惊,因为我自己的用户拥有比运行 appPool 的帐户更高的权限)。
有什么想法可以解决这个问题吗?
【问题讨论】:
标签: c# asp.net iis windows-authentication basic-authentication