OnCreatingTicketイベント中にoAuthが失敗するようにしたいとします。私は.Failを呼び出すことはできますが、何もしないようです。ワークフローが遅すぎますか?実際に障害を処理するための追加コードがありませんか?AddOAuth OnCreatingTicket中にAuthenticateResult.Fail結果を返します。
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie().AddOAuth("schemename", SetOAuthOptions);
private void SetOAuthOptions(OAuthOptions options)
{
options.ClientId = ...;
options.ClientSecret = ...;
options.CallbackPath = ...;
options.AuthorizationEndpoint = ...;
options.TokenEndpoint = ...;
options.Events = new OAuthEvents
{
OnCreatingTicket = async context => await AddIdentityClaimsAsync(context),
OnTicketReceived = ...
};
}
private async Task AddIdentityClaimsAsync(OAuthCreatingTicketContext context)
{
...
if(noAccess)
context.Fail("Sorry, you don't have access to the product.");
}
これは何かを考え出しましたか?私は同様の状況に陥っています。外部プロバイダからアクセストークンを取得すると、追加の検証(API呼び出し)を実行する必要があります。 – shurik