【发布时间】:2016-02-08 06:59:08
【问题描述】:
我正在使用 c# 自托管 OWIN 服务器,并已将我的应用程序配置为使用 JWT 授权,如下所示。这可以正常工作,无效令牌会被 401 Unauthorized 拒绝并接受有效令牌。
我的问题是我怎样才能写一个为什么请求被拒绝的日志。是不是过期了?是不是观众错了?没有令牌存在吗?我希望记录所有失败的请求,但我似乎找不到任何示例。
public class Startup
{
public void Configuration(IAppBuilder appBuilder)
{
// Configure Web API for self-host.
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// Enable
config.Filters.Add(new AuthorizeAttribute());
appBuilder.UseJwtBearerAuthentication(new JwtOptions());
appBuilder.UseWebApi(config);
}
}
JwtOptions.cs
public class JwtOptions : JwtBearerAuthenticationOptions
{
public JwtOptions()
{
var issuer = WebConfigurationManager.AppSettings["CertificateIssuer"];
var audience = WebConfigurationManager.AppSettings["CertificateAudience"];
var x590Certificate = Ap21X509Certificate.Get(WebConfigurationManager.AppSettings["CertificateThumbprint"]);
AllowedAudiences = new[] { audience };
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new X509CertificateSecurityTokenProvider(issuer, new X509Certificate2(x590Certificate.RawData))
};
}
}
我猜我需要实现自己的验证才能做到这一点,但也不确定如何实现。
【问题讨论】:
-
对此有任何答案吗?我想知道同样的事情......
-
暂时没有答案,好像没有人知道。