小编Eri*_*son的帖子

如何删除不需要的 WWW-Authenticate 标头

从 MVC 应用程序中,我正在根据对这个 SO 问题的回答获取带有身份验证的 iCal 订阅:

使用身份验证在 ASPNET MVC 中提供 iCalendar 文件

iCal 流是使用 DDay.iCal 库从数据库中的事件动态创建的。

此解决方案在本地开发服务器上运行良好:OSX 日历和 Outlook 都可以从应用程序订阅和接收更新。

但是,在我的 Web 主机上的共享服务器上,日历和 Outlook 的身份验证均失败。也就是说,他们都在(正确的)失败后不断向我询问用户和密码。

编辑:如果我将浏览器指向日历 URL,它也会无法通过身份验证。

编辑:变得更奇怪——Firefox 验证并获取 iCal 文件。Safari、Chrome 和 IE 验证失败。

如果我使用相同的凭据将 curl 指向日历 URL,我就成功了(即我获得了所需的 iCal 文件)。当然,可以使用相同的凭据登录到 MVC 应用程序。

编辑 - 我想我知道发生了什么,但我不知道如何解决它。在我的OnAuthorization()I add onlyWWW-Authentication Basic但使用 Fiddler 我可以看到提供了三种类型的身份验证:

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="Secure Calendar"
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
... etc ...
Run Code Online (Sandbox Code Playgroud)

此时只有 Firefox 响应基本授权,它成功了。

GET <<URL>> HTTP/1.1
...
Authorization: Basic <<encoded credentials>> …
Run Code Online (Sandbox Code Playgroud)

icalendar iis-7 plesk asp.net-mvc-3

4
推荐指数
1
解决办法
9243
查看次数

标签 统计

asp.net-mvc-3 ×1

icalendar ×1

iis-7 ×1

plesk ×1