我跟着引導驗證用戶。如果我將服務發佈到Azure,我也可以對用戶進行身份驗證。但我希望能夠測試和在本地驗證用戶。如何才能做到這一點?不能與本地.NET後端
我正在使用Live ID,並且在Web.config中設置了正確的ClientID和ClientSecret。當我嘗試從客戶端調用LoginAsync時,調用將失敗,並顯示請求無法完成。 (不允許的方法)
** 更新2014年3月20日 **
基於卡洛斯和亨裏克的意見,我已經更新了我的本地服務來查找正是像我的服務器實例。我遵循Scot Hanselmans excellent guide,現在我的服務在端口80 和端口443上本地運行,並帶有完全有效的SSL證書。它甚至運行在完全相同的https://xxxx.azure-mabile.net主機名上。
通過這些更改,現在在運行應用程序與本地計算機或在Azure上運行應用程序之間沒有任何配置差異。我可以在瀏覽器中訪問https://xxxx.azure-mabile.net,重定向到Live登錄,登錄併成功重定向回服務。在瀏覽器中它一切正常。但它仍然無法在應用程序中工作。
我附加了調試器,將CLR錯誤設置爲「拋出時中斷」,並且我設法在服務中捕獲異常。下面是我在即時窗口中看到:
的響應特性是無益的。它不提供任何有關該問題的其他信息。
脫穎而出對我的唯一的事情是,應用程序試圖做一個POST到/登錄/ microsoftaccount,而瀏覽器通常會做一個GET在這個地址(然後被重定向) 。
** 以下Henriks指南remote debugging我能夠加載符號,並獲得微小更多位信息更新#2 2014年3月20日 **
後:
「的現有連接被遠程主機強制關閉「
錯誤代碼爲10054(WSAECONNRESET)由對等方重置連接。
看起來,實時身份驗證服務器可能會強制終止連接,但只有當我與應用程序進行身份驗證時。再一次,瀏覽器內的驗證很好。這與/login/microsoftaccount是來自應用程序的POST事實似乎暗示了我從LiveClient.LoginAsync獲取的身份驗證令牌存在問題。我會做更多的挖掘...
如果你進入瀏覽器並嘗試使用「https://」而不是'http://'登錄,它還能工作嗎?如果我沒有記錯,Windows 8應用程序中的身份驗證需要通過HTTPS完成。 – carlosfigueira
謝謝卡洛斯。這似乎沒有解決它。我已經更新了上面的問題,並且已經使用有效的可信證書在端口443上本地完全啓用了HTTPS。這仍然不起作用。 –
我也試過,沒有運氣。我還配置了外部訪問issexpress [鏈接](http://stackoverflow.com/questions/3313616/iis-express-enable-external-request),輸入客戶端密鑰和客戶端的密碼web.config和添加客戶端和服務器的網址到谷歌的開發人員儀表板。提琴手顯示「invalid_client」。 – martinoss