2016-10-21 69 views
0

我有一個現有的使用個人用戶帳戶的ASP.net Web API。Azure移動服務.net後端使用個人用戶帳戶進行身份驗證

我用它來註冊/更改密碼/登錄等。 當我登錄時,我收到一個令牌,然後使用令牌訪問[授權]控制器。


[授權] 公共類ValuesController:ApiController

我已經添加了控制器,數據對象,Startup.MobileApp和AppNameApiContext從TODO .NET後端爲天青移動應用,以我目前的API。

即 公共類TodoController:TableController

這對同步的工作精細/插入等,但如果我[授權]添加到控制器,它會永遠返回未經授權就算我送,我是同樣的道理與其他API端點一起使用。

我可以使用「Azure移動應用自定義身份驗證」 使用Microsoft.Azure.Mobile.Server.Authentication來查找所有示例。

如何使用相同的登錄/令牌來提供身份驗證兩者(ValuesController:ApiController) 和 (TodoController:TableController)

在期待非常感謝

我試圖找到像

app.UseAppServiceAuthentication(new AppServiceAuthenticationOptions 
      { 
       SigningKey = signingKey, 
       ValidAudiences = new[] { hostName }, 
       ValidIssuers = new[] { hostName }, 
       TokenHandler = new MyClass (config) 
      }); 


public class MyClass : AppServiceTokenHandler 
{ 
    public override bool TryValidateLoginToken 
    (string token, 
    string signingKey, 
    IEnumerable<string> validAudiences, 
    IEnumerable<string> validIssuers, 
    out ClaimsPrincipal claimsPrincipal) 

    { 
    if (CheckIfUserIsAuth(token)) 
    { 
     return true; 
    } 

    // Or something like 
    // if(token== CurrentUserToker) 
    // { return true}; 
    } 
} 

但是,我仍然收到未經授權的,是否我返回true爲false。

+0

需要更多信息。 (1)EasyAuth如何建立? (2)您使用的是什麼版本的Microsoft.Azure.Mobile.Client? (3)你如何登錄? (4)您是否有任何其他OWin驗證管道代碼? –

+0

嗨, 我正在使用ASP.NET 4.6 Web API模板進行身份驗證「個人用戶帳戶」。 我使用它來執行應用程序的標準Api調用。 目前我使用電子郵件地址和密碼致電http://myapi.com/token。它返回一個令牌,我存儲該令牌並使用該令牌訪問[Authorize]控制器。 我想使用相同的令牌來訪問 [授權] TodoController:TableController。 Microsoft.Azure.Mobile.Client版本是3.0.3。它與TODO Xamarin.Android一起從aure門戶下載 – ryan

回答

0

不幸的是,你從錯誤的觀點開始了。您需要從Azure移動應用程序開始。這具有必要的邏輯,可以使用EasyAuth從移動設備進行身份驗證。我建議從教程開始 - 它有你選擇的前端和後端。您可以根據需要進行擴展。

+0

好吧,我們稱它爲使用現有API的現有應用程序。 API的終端類似於推送,獲取用戶,獲取數據,創建賬戶,發送電子郵件,忘記密碼等。該API還可以在網站以及桌面應用程序中使用。 我現在想要將應用程序從使用Sql Lite移動到Azure Table Sync。 答案是使用EasyAuth有一個重複的API? – ryan

+0

或者登錄兩次,獲取Api和EasyAuth用戶的用戶。 – ryan

+0

您的問題是[個人帳戶Owin的東西,而不是Azure移動應用程序Owin的東西,正在處理[授權]標記,導致衝突。您需要提取舊的Owin資料並將其替換爲Azure移動應用程序Owin資料。 –

相關問題