OWIN Cookie身份验证

时间:2014-12-03 12:44:39

标签: c# asp.net-mvc asp.net-web-api owin

我似乎无法让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?

1 个答案:

答案 0 :(得分:3)

如果有人遇到同样的问题,在WebApi配置中,以下行忽略了cookie并查看了Bearer Token。

config.SuppressDefaultHostAuthentication();

评论它使基于cookie的身份验证工作。