【发布时间】:2015-01-11 04:09:09
【问题描述】:
我正在开发一个通过 ASP.NET WebAPI 托管 RESTful 服务的 Intranet 站点。
我遇到了一个问题,即所有浏览器(Chrome、Firefox 和 IE)都显示请求凭据的登录提示。我在启用匿名访问的 Windows 7 Home Premium 上的 IIS 7.5 中托管该站点。
根 URL http://localhost/RootAPI/ 应该对匿名用户可见,但私有路由,例如http://localhost/RootAPI/Invoice 和 http://localhost/RootAPI/Order 只能通过 [Authorize] 属性访问通过身份验证的用户。一旦我解决了这个问题,我打算通过 AngularJS 使用 WebAPI 调用来控制身份验证过程。
我的网站使用 ASP.NET v4.0 应用程序池标识,并且我已为该用户分配了对该应用程序文件夹的读取权限。
我还将http://localhost 添加到 IE 中的受信任站点列表中,并在 IE 的高级选项中选中“允许集成 Windows 身份验证”。此外,在 Intranet 站点的自定义级别中检查了“使用当前用户名和密码自动登录”,问题仍然存在。
我的 web.config 文件中有这个。
<authentication mode="None" />
<identity impersonate="true" />
查看C:\inetpub\logs\LogFiles\W3SVC1 下的日志文件时,它不显示用户名(我希望看到匿名用户名)并显示 HTTP 状态 401。
我在这个令人沮丧的问题上花了两天时间,但我无法阻止登录提示的出现。谁能指出我做错了什么的正确方向?
【问题讨论】: