0

MVC5 Webアプリケーションから呼び出すことができるRESTfulなAPIを用意して、ローカルSQL Serverに対する排他的な認証/認可を最初に行う必要があります。私は、ヘッダートークンなどを取得するために、Webアプリケーションからのログイン資格情報をAPIに渡すことができる必要があります。次に、データをプルするか、またはデータをdbに戻すためにトークンをチェックする必要があります。私は機能を理解するまでチュートリアルのサンプルアプリケーションHereを使っています。REST APIデータレイヤーを持つWebアプリケーション

ウェブ側が送信ボタンをキャッチするボタンといくつかのjQueryを使ってちょうどフォームをクリックしている:

$(document).ready(function() { 

    var register = function() { 
     var dataa = { 
      Email: "[email protected]", 
      Password: "password", 
      ConfirmPassword: "password" 
     }; 

     $.ajax({ 
      type: 'POST', 
      url: 'api/Account/Register', 
      contentType: 'application/json; charset=utf-8', 
      data: JSON.stringify(dataa) 
     }); 
     return false; 
    } 

    $('#btnRegister').click(register); 
}); 

、その後、ここでは、API自体のコントローラです:

[Authorize] 
[RoutePrefix("api/Account")] 
public class AccountController : ApiController 
{ 
    [AllowAnonymous] 
    [Route("Register")] 
    public async Task<IHttpActionResult> Register(RegisterBindingModel model) 
    { 
     if (!ModelState.IsValid) 
     { 
      return BadRequest(ModelState); 
     } 

     var user = new ApplicationUser() { UserName = model.Email, Email = model.Email }; 

     IdentityResult result = await UserManager.CreateAsync(user, model.Password); 

     if (!result.Succeeded) 
     { 
      return GetErrorResult(result); 
     } 

     return Ok(); 
    } 
} 

それをクリックしようとすると、404エラーが表示されます。

+0

Web API、MVC、認証(個々のUSerアカウント)を有効にしてVisuat StudioでWebアプリケーションを作成すると、基本的にすべてのものを持つプロジェクトとなります。 Web APIとWeb APIのセキュリティについては、Web上に多くのチュートリアルがあります。あなたの質問が広すぎて答えられないことを除けば、あなたはあなたにとってうまくいかないものに焦点を当てる必要があります。 – infiniteRefactor

+0

それで私が持っている問題は、個々のユーザーアカウントで新しいWeb APIを作成することです。すべての設定が完了していますが、ユーザー名とパスワードをそのapiに伝達する単純なログインページを作成する方法を理解するのは難しいです。私が見つけたチュートリアルは、Webに直面しているアプリまたはAPIの認証に役立つようですが、必ずしも2つの間の接続ではありません。私にとっては、コンセプトをよりよく理解する必要があります。なぜなら、私はそれを漠然としたままにしているからです。質問する正しい質問はわかりません。 –

+0

スタックオーバーフローは、チュートリアル(チュートリアルへのリンクもありません)を提供するためのものではありません。それは本当にコードの助けが必要です。あなたが共有するコードを十分に持っていれば、それはおそらく最善のルートです。 –

答えて

2

WebAPIの認証は、トークンベースのOAuth認証に基づいています。

デフォルトの作成プロジェクトの認証トークン(/ Token)があり、ユーザー名とパスワードを使用してそのURLにPOSTリクエストを行うと、応答としてトークンが取得されます。クライアントアプリケーションはこのトークンを保存し、Authorizedを得るために各要求にそれを添付する必要があります。

このトークン生成およびトークン認識プロセスは、アプリケーションパイプラインに接続されたOWinコンポーネントによって提供されます。これらのコンポーネントの初期化については、StartUp.Auth.csを調べることができます。

ログインフォームには何も特別なものはありません。認証URLにユーザー名とパスワードを投稿するだけです。

トークンをクライアント側に保存する方法は、デザインによって異なる場合があります。トークンを格納する最も好ましい方法は、Javascriptでクッキーまたは特定のトークンストレージを使用することです。

例については、this tutorialを参照してください。

+0

このチュートリアルのサンプルアプリケーションはロードされていますが、それはすべて1つのプロジェクトに含まれています。そこで、新しいプロジェクトをソリューションに追加し、ホームコントローラーとインデックスビューをコピーしますが、 –

+0

これを変更してAPIにヒットするにはどうすればよいですか? –

関連する問題