3
我在登錄時將所有生成的承載令牌保存到數據庫中。現在我想檢查數據庫中是否存在請求承載,拒絕它。我應該把它放在哪裏?如何使服務器上的不記名令牌失效
請注意,我希望這發生在歐文管道中。 (不中的WebAPI管道例如,[Authorize]
屬性裏面。)
我在登錄時將所有生成的承載令牌保存到數據庫中。現在我想檢查數據庫中是否存在請求承載,拒絕它。我應該把它放在哪裏?如何使服務器上的不記名令牌失效
請注意,我希望這發生在歐文管道中。 (不中的WebAPI管道例如,[Authorize]
屬性裏面。)
繼承OAuthBearerAuthenticationProvider
這樣的:
public class ApplicationOAuthBearerAuthenticationProvider : OAuthBearerAuthenticationProvider
{
public override Task ValidateIdentity(OAuthValidateIdentityContext context)
{
var result= base.ValidateIdentity(context);
if (context.IsValidated)
{
var ticket = context.Ticket;
if (ticket != null && ticket.Identity.IsAuthenticated && ticket.Properties.ExpiresUtc > DateTime.UtcNow)
{
if (1==2)//TODO: put your server side condition here
{
context.SetError("HaHa!");
}
}
}
return result;
}
}
,並在您startup.cs
課堂上使用這樣的:
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions
{
Provider = new ApplicationOAuthBearerAuthenticationProvider(),
});
}
}