[過去ログ] ふらっと C#,C♯,C#(初心者用) Part153 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
138
(1): デフォルトの名無しさん (ワッチョイ 9749-i1tV) [sage] 2021/12/22(水) 16:32:03.68 ID:Gb4RQ3pz0(1) AAS
.NET 6 のASP.NET Core Web Apiでの質問です。

[ApiController]
[Route("[controller]")]
public class UserController : ControllerBase
{
private readonly ILogger<UserController> _logger;
private readonly IConfiguration _config;

public UserController(ILogger<UserController> logger, IConfiguration config, IBearerTokenValidater bearer)
{
_logger = logger;
_config = config;
}

[HttpGet(Name = "GetUsers")]
public string Get()
{
★ var _ = Request.Headers.TryGetValue("Bearer", out var apiKey);
return apiKey;
}
}

というControllerを作りました。
★の処理を本当はコンストラクタで行いたいのですが、移動すると以下のエラーが出ます。(もしくはもっと前に行いたい)

System.NullReferenceException: 'Object reference not set to an instance of an object.'
Microsoft.AspNetCore.Mvc.ControllerBase.Request.get が null を返しました。

★の処理をコンストラクタ(もしくはもっと前)で行うにはどうすればいいでしょうか。
(コンストラクタではHttpcontextを参照できないのでしょうか。エラーになるのは起動時ではなくRequestで到達した時です。)
139
(1): デフォルトの名無しさん (ワッチョイ a6da-SJTP) [sage] 2021/12/22(水) 17:24:08.56 ID:GlBmoaYS0(1) AAS
>>138
Requestヘッダにアクセスするユーティリティクラスを作ってそれをDIする。
ちょっとstackoverflow検索すれば出てくると思うが。
外部リンク:stackoverflow.com

まぁAPIキーを調べたいなら、いちいちControllerでやるより
StartUpの段階で検証処理を割り込ませておくのが定石だと思うが。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 3.132s*