在web api 2中使用cookie进行认证

本文关键字:cookie 认证 web api | 更新日期: 2023-09-27 18:07:51

我正在使用Thinklecture库实现WebApi身份验证。它可以很好地使用url中的accesstoken,代码如下:

var config = new AuthenticationConfiguration();
// for testing
config.RequireSsl = false;
// security by user token
var handler = new SimpleSecurityTokenHandler("my access key", token =>
{
    if (ObfuscatingComparer.IsEqual(token, "accesskey123"))
    {
        return new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
        {
            new Claim("customerid", "123")
        }, "Custom"));
    }
    return null;
});
config.AddAccessKey(handler, AuthenticationOptions.ForQueryString("userToken"));

在这里,AuthenticationConfiguration是Thinklecture库的一部分。

我没有得到的工作是当尝试使用cookie与以下代码进行身份验证。我已经在fiddler中验证了cookie是正确发送的。

var handler2 = new SimpleSecurityTokenHandler("my access key", token =>
{
    if (ObfuscatingComparer.IsEqual(token, "accesskey123"))
    {
        return new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
        {
            new Claim("customerid", "123")
        }, "Custom"));
    }
    return null;
});
config.AddAccessKey(handler2, AuthenticationOptions.ForCookie("company.userToken"));

我用错了这个库吗?

在web api 2中使用cookie进行认证

未实现cookie选项