无法使IdentityServer4自定义cookie处理程序正常工作

时间:2018-02-21 11:33:17

标签: identityserver4 asp.net-core-identity

我无法使用IdentityServer4获取自定义Cookie身份验证处理程序。我正在使用ASP.NET核心身份并遵循官方指南:https://identityserver4.readthedocs.io/en/release/topics/signin.html

我需要覆盖CookieAuthenticationEvents.ValidatePrincipalCookieAuthenticationEvents.SignedIn事件处理程序。

我编写了一个继承CookieAuthenticationEvents的类,并覆盖了两个事件处理程序。

我通过以下方式将其分配给自定义Cookie处理程序:

var auth = services.AddAuthentication("MyCookies");

auth.AddCookie("MyCookies", options =>
{
    options.Events = new RealtimeStatusCookieAuthEvents(Configuration);
});

这是我的代码: https://gist.github.com/Amethi/f3411038a9447d274c0b721698fc5e63

事件处理程序不会触发,即我希望它们为每个请求触发(由于ValidatePrincipal)以及在关闭浏览器并使用cookie身份验证(SignedIn)登录后返回站点时。

任何人都知道我做错了什么?

更新

即使按如下方式简化它也无济于事。事件处理程序不会触发。

var auth = services.AddAuthentication("CustomCookies").AddCookie("CustomCookies", options =>
{
    options.Events = new CookieAuthenticationEvents
    {
        OnSignedIn = context =>
        {
            Console.WriteLine("{0} - {1}: {2}", DateTime.Now,
                "OnSignedIn", context.Principal.Identity.Name);
            return Task.CompletedTask;
        },
        OnValidatePrincipal = context =>
        {
            Console.WriteLine("{0} - {1}: {2}", DateTime.Now,
                "OnValidatePrincipal", context.Principal.Identity.Name);
            return Task.CompletedTask;
        },
    };
});

0 个答案:

没有答案