何を試しても、; charset=utf-8
の部分を返信のContent-Type
ヘッダーから削除できないようです。ASP.NET Core MVC応答でContent-Typeから文字セットを削除するにはどうすればよいですか?
[HttpGet("~/appid")]
// Doesn't work
//[Produces("application/fido.trusted-apps+json")]
public string GetAppId()
{
// Doesn't work
Response.ContentType = "application/fido.trusted-apps+json";
// Doesn't work
//Response.ContentType = null;
//Response.Headers.Add("Content-Type", "application/fido.trusted-apps+json");
return JsonConvert.SerializeObject(new
{
foo = true
});
}
私だけapplication/fido.trusted-apps+json
をしたいとき、私はいつもapplication/fido.trusted-apps+json; charset=utf-8
を取得します。
注:これは述べてU2FためFIDO AppID and Facet Specification v1.0に準拠することです。
応答は "アプリケーション/ fido.trusted-アプリの+ JSON" のMIMEのContent-Typeのを設定する必要があります。
私は '[生み出し]'属性がなければなりませんの内容を信じて:このようにミドルウェアを使用する必要がちょっとハックようですMediaTypeCollectionのメンバです。おそらく 'application/fido.trusted-aps + json'をコレクションに追加すると、それがうまくいくでしょう。 https://docs.microsoft.com/en-us/aspnet/core/api/microsoft.aspnetcore.mvc.formatters.mediatypecollection#Microsoft_AspNetCore_Mvc_Formatters_MediaTypeCollection –
「MediaTypeCollection」にどこから追加しますか?スタートアップどこか? – kspearrin
カスタムフォーマッタを使用している場合を除いて変更することはできないと思うので、あまり役に立ちません。下の私の答えを見てください。コントローラからの応答ストリームを変更できない場合は、ミドルウェア(?)を使用して、応答全体を自分で処理する必要があります。カスタムフォーマッタはあなたの最善の策のようです。 –