2016-07-11 21 views
2

これはよくある質問です。しかし、私は本当にそれをどのように統合するのか分かりません。 私のWeb APIサービスに認証を追加したいと思います。今私は、サービスのメソッドを呼び出すためのコンソールアプリケーションを1つ作成しました。Web APIの認証

私はこれを行ったblog。私はこの記事で述べたように認証フィルタを実装したいだけです。

HTTPClientと一緒に私のコンソールアプリケーションから資格情報を渡し、Web APIにそれらのものをフェッチして認証するにはどうすればいいですか?

認証フィルターを作成しましたが、認証フィルターのAuthenticateAsyncメソッドを呼び出しません。 HTTPクライアントを渡すために

私はこれを行っている:ウェブAPIで認証を実装する方法をあなたを教える

public void GetData() 
    { 
     HttpClient cons = new HttpClient(); 
     cons.BaseAddress = new Uri("http://localhost:50524/"); 
     cons.DefaultRequestHeaders.Accept.Clear(); 
     cons.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
     var data = Encoding.ASCII.GetBytes("Ankita:ankita123"); 
     var header = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(data)); 
     cons.DefaultRequestHeaders.Authorization = header; 

     //MyAPIPost(cons).Wait(); 
     MyAPIGet(cons).Wait(); 
    } 
+0

このブログ記事をチェックしてください:http://code.tutsplus.com/tutorials/securing-aspnet-web-api--cms-26012 – peco

答えて

0

私は正常にthisの記事を使用して認証を実装しました。そのフィルタ属性が実装されています。

3

は多くの時間がかかります。あなたはオンラインチュートリアルをよく守ってください。

あなたが読んだブログは、ASP.NETのさまざまな認証について取り組んでいます。 ASP.NET Web API 2として質問をタグ付けしたので、OWINミドルウェアを利用したトークンベースの認証を使用することをお勧めします。 thisを確認してください。このガイドでは、Web APIへのリクエストを確認するためのコンソールアプリケーションを使用しています。

それの要旨は...

クライアント>トークンプロバイダートークンが有効(既存および有効期限が切れていない)であるか確認してください>>ウェブAPI(有効なユーザーのためのトークンを生成します)>認証!あなたはそれが要求を実行する際に使用される資格情報を設定することができます

+0

私はtype属性を実装する必要があります。グローバルに、または特定の方法で使用できるようにします。出来ますか? – Ankita

+0

Web APIを使用すると、認証を実装する場合は、メソッドまたはWeb APIコントローラに '[Authorize]'属性のタグを付けることができます。もちろん、チュートリアルのリンクに示すようにプロバイダを実装する必要があります。 –

+0

私は同意すると、トークンベースの認証はパスワードを渡すよりも優れています。 – Alex

0

それを作成するときにHttpClientをしてAPIにアクセスしようとしている考えると、あなたはそれをHttpClientHandlerのインスタンスを渡すことができますが、:

new HttpClient(new HttpClientHandler { Credentials = new NetworkCredential(userName, password) }) 

お手伝い願います!