ServiceStack.net に CustomAuthProvider を実装しようとしています。3 番目のパラメーターを使用して、ユーザー名/パスワードだけを超えて拡張する必要があります。(それをapikeyと呼びましょう)また、投稿をapplication/jsonとして受け入れるようにしたいと思います
public override bool TryAuthenticate(ServiceStack.ServiceInterface.IServiceBase authService, string userName, string password)
{
if (String.IsNullOrEmpty(userName) || String.IsNullOrEmpty(password))
return false;
var httpReq = authService.RequestContext.Get<IHttpRequest>();
string apiKey = httpReq.GetParam("apikey");
if (String.IsNullOrEmpty(apiKey))
return false;
var engine = Helpers.DbHelper.GetEngine();
return engine.Account.ValidateApiKey(userName, password, apiKey);
}
私のペイロードは次のようになります
{
"UserName"="my.user",
"Password"="$thePassword!1",
"Apikey"="theapikey"
}
ユーザー名とパスワードは TryAuthenticate() に渡されますが、apikey は常に null です。フォームとして投稿している場合、上記は正常に機能します。私は何かを見逃したか、これを行う方法について完全に間違った考えを持っていると確信しています。私は ServiceStack を初めて使用しますが、1 週間の大半で例と記事を調べてきました。:(アドバイスをいただければ幸いです。
注: テストとして Advance Rest Client Chrome 拡張機能を使用しています。