從MVC應用程序,我跟採購驗證的iCal中訂閱的答案,這太問題如下:如何刪除不需要的WWW驗證標題
Serving an iCalendar file in ASPNET MVC with authentication
被動態地創建的iCal流使用DDay.iCal庫的數據庫中的事件。
此解決方案在本地開發服務器上工作正常:OSX日曆和Outlook都可以訂閱並從應用程序接收更新。
但是,在我的Web主機上的共享服務器上,日曆和Outlook的身份驗證都失敗。也就是說,在(正確的)失敗後,他們都一直要求我輸入用戶密碼&。
編輯:如果我指向一個瀏覽器在日曆的URL它也認證失敗。
編輯:獲取weirder-Firefox認證並獲取iCal文件。 Safari,Chrome和IE驗證失敗。
如果我用日誌URL指向具有相同憑據的日曆URL,我會成功(即獲得所需的iCal文件)。而且,當然,可以使用相同的憑據登錄到MVC應用程序。
編輯 - 我想我知道發生了什麼,但我不知道如何解決它。在我OnAuthorization()
我只添加WWW-Authentication Basic
但菲德勒我可以看到三種認證方式可供選擇:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="Secure Calendar"
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
... etc ...
此時只有火狐與基本授權,其成功響應。
GET <<URL>> HTTP/1.1
...
Authorization: Basic <<encoded credentials>>
IE與協商響應,從而未能
GET <<URL>> HTTP/1.1
...
Authorization Negotiate <<encoded stuff>>
誰是添加其他兩個,我怎樣才能使它停下來?下面是來自服務器的響應更加詳細:
HTTP/1.1 401 Unauthorized
Cache-Control: private
Transfer-Encoding: chunked
Content-Type: text/html
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 3.0
WWW-Authenticate: Basic realm="Secure Calendar"
X-AspNet-Version: 4.0.30319
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
X-Powered-By-Plesk: PleskWin
Date: Tue, 23 Oct 2012 13:27:48 GMT
感謝, 埃裏克