簡體   English   中英

Windows Store應用程序中的MVC5 WebApi2(OWIN)和WebAuthenticationBroker

[英]MVC5 WebApi2 (OWIN) and WebAuthenticationBroker in a Windows Store App

我在MVC5 WEBAPI2解決方案中使用AccountController從Windows Store應用程序進行身份驗證時遇到問題。 我正在使用為WEBAPI創建新的ASP.NET項目時生成的標准代碼。

我正在使用WebAuthenticationBroker對用戶進行身份驗證,並已使用UseMicrosoftAccountAuthentication在Startup.Auth.cs中配置了Microsoft身份驗證。

一切似乎都可以進行到AccountController.GetExternalLogin方法需要發出令牌的地步。 我已成功通過身份驗證,並且使用“承載者”身份驗證類型創建了新的身份,但是將發出200 OK,而不是預期的帶有承載令牌的302重定向。

我正在使用Fiddler2將SPA應用程序與Windows Store應用程序進行比較。 兩者之間的提琴手不同之處在於,當從瀏覽器調用時,/ api / account / externallogin請求使用發出的令牌302響應,而從Windows Store App調用時則使用無承載令牌的200 ok響應。

我使用從/ api / account / externallogins創建的URL發出請求,這在兩種情況下都是完全相同的。 我唯一發現的不同是用戶代理標頭。

在我看來,當請求源自Windows Store App時,OWIN中間件沒有發出302重定向,而是從操作本身返回了200 OK。 任何幫助將不勝感激。

這是啟動工作流程的兩個請求:從SPA應用程序:

GET /api/Account/ExternalLogin?provider=Microsoft&response_type=token&client_id=self&redirect_uri=http%3A%2F%2Fflo.p1e.me%3A58546%2F&state=BS7KabYeygoz9t3Iqsruc1S9UccJP35-CTNnW9h43SM1 HTTP/1.1 

從Windows Store應用程序:

GET /api/Account/ExternalLogin/?provider=Microsoft&response_type=token&client_id=self&redirect_uri=ms-app%3A%2F%2Fs-1-15-2-2064878076-3984620318-3112860537-1772958928-95178788-1397955450-1148366612%2F&state=bKHK18Oo_Xv8PeFoPbfiInrV9lU70oRfNGypTw9z8701 HTTP/1.1

我對兩個調用使用了相同的redirect_uri,結果相同。

我已通過刪除網址中的結尾/來解決了該問題。

之前:

GET /api/Account/ExternalLogin/?provider=Microsoft&response_type=token&client_id=self&redirect_uri=ms-app%3A%2F%2Fs-1-15-2-2064878076-3984620318-3112860537-1772958928-95178788-1397955450-1148366612%2F&state=bKHK18Oo_Xv8PeFoPbfiInrV9lU70oRfNGypTw9z8701 HTTP/1.1

后:

GET /api/Account/ExternalLogin?provider=Microsoft&response_type=token&client_id=self&redirect_uri=ms-app%3A%2F%2Fs-1-15-2-2064878076-3984620318-3112860537-1772958928-95178788-1397955450-1148366612%2F&state=bKHK18Oo_Xv8PeFoPbfiInrV9lU70oRfNGypTw9z8701 HTTP/1.1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM