2016-10-21 14 views
0

個人用のユーザーアカウントを使用する既存のASP.net Web APIがあります。Azureモバイルサービス.net個別のユーザーアカウントを使用したバックエンド認証

私はそれを使用してパスワードの変更/ログインなどを行います。 私がログインすると、トークンを受け取った後、トークンを使用して[許可]コントローラにアクセスします。

すなわち
[オーソライズ] パブリッククラスValuesController:ApiController

私は私の現在のAPIにAzureのモバイルアプリケーションのためのTODO .NETのバックエンドからコントローラ、のDataObject、Startup.MobileAppとAppNameApiContextを追加しました。

すなわち パブリッククラスTodoController:TableController

これは、などを挿入/同期のために正常に動作しますが、私は、コントローラに[承認]を追加した場合、私は私は同じトークンを送信しても、それは常に不正戻ります他のAPIエンドポイントで使用します。

「Azureモバイルアプリケーションのカスタム認証」を使用して見つけることができるすべてのサンプル は、Microsoft.Azure.Mobile.Server.Authenticationを使用します。見越して

感謝

私は見つけようとしている: と (TableController TodoController):(ApiController ValuesController)私は同じログインを使用するにはどうすればよい

は/トークンは、両方の認証を提供するために

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}; 
    } 
} 

しかし、私は偽の真偽を返すかどうかはまだ、私はまだ受けていません。

+0

詳細情報が必要です。 (1)EasyAuthはどのようにセットアップされていますか? (2)使用しているMicrosoft.Azure.Mobile.Clientのバージョンは何ですか? (3)どうやってログインしていますか? (4)他のOWin認証パイプラインコードがありますか? –

+0

こんにちは、 私はASP.NET 4.6 Web APIテンプレートを使用しています。認証には "個人ユーザーアカウント"があります。 私はこれを使って、アプリから標準のApi呼び出しを行います。 現在、私は電子メールアドレスとパスワードでhttp://myapi.com/tokenに電話をかけています。それはトークンを返し、トークンを保存し、トークンを使用して[Authorize]コントローラにアクセスします。 同じトークンを使用して、[Authorize] TodoController:TableControllerにアクセスします。 Microsoft.Azure.Mobile.Clientのバージョンは3.0.3です。 TODO Xamarin.Androidが付属しています。 – ryan

答えて

0

残念ながら、間違ったところから始めました。あなたはAzure Mobile Appから始める必要があります。これには、EasyAuthを使用してモバイルデバイスから認証するために必要なロジックがあります。チュートリアルから始めることをお勧めします。フロントエンドとバックエンドの両方が選択できます。必要に応じて展開することができます。

+0

Okでは、既存のAPIを使用する既存のアプリケーションを呼び出すことができます。 APIにはプッシュ、ユーザーの取得、データの取得、アカウントの作成、電子メールの送信、パスワードの忘れなどのエンドポイントがあります.APIはウェブサイトやデスクトップアプリケーションからも使用されます。 これで、Sql LiteからAzure Table Syncにアプリケーションを移動したいと考えています。 答えは、EasyAuthを使用してAPIを複製することですか? – ryan

+0

または、ApiとEasyAuthユーザーのユーザーを2回ログインします。 – ryan

+0

あなたの問題は、Azure Mobile Apps Owinの代わりに[Authorize]タグがIndividual Accounts Owinのもので処理され、競合が発生することです。あなたは古いOwinのものを抽出し、それをAzure Mobile Apps Owinのものに置き換える必要があります。 –

関連する問題