質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

ASP.NET Web API

ASP.NET Web APIはブラウザやモバイル機器のようなクライアント向けのHTTPサービスを構築するフレームワークです。Microsoft .NET Frameworkがベースになっており、RESTfulサービスを構築するには理想的です。

Q&A

0回答

1894閲覧

ASP.NETのWebAPIでPOSTヘッダーにあるアクセストークンで認証させたい

syoco0330

総合スコア30

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

ASP.NET Web API

ASP.NET Web APIはブラウザやモバイル機器のようなクライアント向けのHTTPサービスを構築するフレームワークです。Microsoft .NET Frameworkがベースになっており、RESTfulサービスを構築するには理想的です。

0グッド

0クリップ

投稿2021/10/28 12:48

編集2021/10/28 14:39

ASP.NETでPOSTデータを受け取り、応答するAPIを作っています。
Keyの認証はありません。

POSTされたときにアクセストークンの認証後に応答したいのですが、どのように実現するかが分かりませんでした。
認証に使うKeyはサンプルのPOSTデータにある「Key」と「Key2」です。
Key値は固定で、通信の度に変わるKey値ではありません。

一日以上調べてみましたが、なかなかうまくいきませんでした。
ご教授頂けますと幸いです。

言語:VisualBasic
開発環境:VisualStudio2019
フレームワーク:.NET Framework 4.7.2

POST送信方法:
VisualStudioCode
拡張機能 REST Client

'POST POST https://localhost:44385/api/ApiTest HTTP/1.1 content-type: application/json api-Key: testkey 'ここを追記しています api-key2: testkey2 'ここを追記しています { "name": "sample", "No": 10 }

VisualBasic

1Public Module WebApiConfig 2 Public Sub Register(ByVal config As HttpConfiguration) 3 ' Web API の設定およびサービス 4 5 'jsonをブラウザで表示させる 6 config.Formatters.JsonFormatter.SupportedMediaTypes.Add(New System.Net.Http.Headers.MediaTypeHeaderValue("text/html")) 7 ' Web API ルート 8 config.MapHttpAttributeRoutes() 9 10 11 config.Routes.MapHttpRoute( 12 name:="DefaultApi", 13 routeTemplate:="api/{controller}/{id}", 14 defaults:=New With {.id = RouteParameter.Optional} 15 ) 16 End Sub 17End Module

VisualBasic

1Namespace Controllers 2 Public Class ApiTestController 3 Inherits ApiController 4 5 ' POST: api/ApiTest 6 Public Function PostValue(<FromBody()> ByVal value As Test) As Test 7 Dim test As New Test 8 test.name = value.name 9 test.no = value.no 10 Return Test 11 End Function 12 End Class 13End Namespace

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/10/28 14:25

ASP.NET Core ではない .NET Framework ベースの Web API ということで良いのですか? Visual Studio でプロジェクトを作る時に使ったテンプレート、.NET Framework のバージョンを書いてください。 で、Key って何ですか? 認証用のベアラトークン?
syoco0330

2021/10/28 14:42

>.NET Framework ベースの Web API ということで良いのですか? はい、Coreではありません。 >.NET Framework のバージョンを書いてください。 .NET Framework 4.7.2を追記いたしました。 >認証用のベアラトークン? 勉強不足でベアラトークンを理解できておりませんが、TwitterなどのAPIを参考にする限りアクセストークンになると思います。
退会済みユーザー

退会済みユーザー

2021/10/29 03:31 編集

上に紹介した記事のようなベアラトークンを使ってユーザー認証するという話ではなくて、質問に書いてあるとおり、 api-Key: testkey api-key2: testkey2 というキーとバリューを要求ヘッダに含めて送信すればよくて、後は質問者さんがサーバー側でのそれらのヘッダ情報の取得と独自認証を自分で実装できるので、送り方だけを聞いている? そうだとして、クライアント側では何を使うのですか? ブラウザから JavaScript で ajax を使って 送信? WinForms などのアプリで HttpClient を使って送信?
退会済みユーザー

退会済みユーザー

2021/11/01 02:23

質問者さん、その後無言ですが、コメント欄の質問に対して回答願います。ギブアップしたとかでこのスレッドの Q&A は不用になったということならそれはそれで構いませんので、その旨書いてクローズしてください。無言で放置は NG です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問