2

我们正在尝试在项目中使用基本身份验证,它通常在我们的集成和 QA 环境中运行良好,甚至在 IIS 7.5 本地运行。但是在 IIS Express 中本地运行时,我们会遇到一些非常奇怪的问题——任何静态请求都会导致神秘的 HTTP 500 错误,告诉我们访问该资源时出现错误,可能是由于与权限相关的一些原因,错误代码为 0x80070542。同时,在 ASP.NET 中呈现的任何内容都是完美的。

粗略搜索表明该问题通常源于 IIS 的帐户无法访问这些资源。这已经失效了,IUSER 肯定可以访问资源——事实上,完全相同的文件夹在 IIS 7.5 中完美运行;只有 IIS Express barfs。只有当我们启用基本身份验证时——如果我们启用 Windows 身份验证,所有请求都会完美通过。

最后,我们尝试运行 sysinternals procmon 来确定我们是否正在查看正确的用户,以及是否是其他失败的用户,我们发现失败是由于 BAD IMPERSONATION 导致的。但试图找出谁在冒充什么是徒劳的。据我们所知,IUSER / NETWORK SERVICE / default 帐户确实具有适当的访问级别,因为 IIS 在生产模式下工作并且任何类型的访问测试都通过了。运行 IIS express 的帐户都是本地管理员,应该可以访问模拟。在本地安全策略中手动添加该权限没有任何区别。除了明确定义一个我真的不需要做的模拟用户之外,我只是看不到解决这个问题的方法。

那么,有没有一种正确的方法可以让 IIS Express 处理基本的身份验证和静态请求?

4

2 回答 2

0

IIS Express 作为当前登录用户运行并且不进行模拟。可能只是为了测试,您能否尝试将当前登录的用户帐户添加到 IIS IUser 组,看看是否有任何作用。

于 2012-02-07T14:26:19.197 回答
0

我终于获得了良好的权威更新,即基本身份验证中的某些内容在 IIS Express 8 中被/已损坏,这是一个已知错误,该版本不会解决,但可能会在未来版本中解决。

我们已经有了开发配置,所以我们只是使用 windows auth 进行本地开发,因为这不会改变我们的应用程序的任何东西,而且我们已经有了独立的开发配置,但这可能不适用于所有情况。

于 2015-10-21T21:30:24.890 回答