我似乎无法让OWIN使用基于Cookie的身份验证。我在启动时将我的OWIN令牌端点配置为:
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true
};
app.UseOAuthBearerTokens(OAuthOptions);
我还配置了Cookie身份验证:
app.UseCookieAuthentication(new CookieAuthenticationOptions());
现在当我点击/token
端点时,我得到响应中的持有者令牌,并且还在客户端使用令牌设置了cookie。
接下来,我有一个用Authorize
属性修饰的控制器。当我尝试访问任何方法时,我得到401 Unauthorized响应,即使cookie随请求一起发送。看来OWIN并不尊重用于身份验证的cookie。
我在这里遗漏了一些东西,可能是某种类型的配置?如果我使用bearer token设置Authorization标头,但为什么它只能用于cookie?
答案 0 :(得分:3)
如果有人遇到同样的问题,在WebApi配置中,以下行忽略了cookie并查看了Bearer Token。
config.SuppressDefaultHostAuthentication();
评论它使基于cookie的身份验证工作。