Kentor AuthServices / Owin - 处理身份提供者的响应

时间:2017-11-13 23:23:46

标签: kentor-authservices

我有一个工作配置,使用KentorAuthServices& amp ;;对Azure AD进行身份验证。 Owin,但我需要了解一些刚刚登录的用户的基本信息。当我使用WSFed作为身份验证服务时,我可以简单地处理SecurityTokenValidated通知,如下所示。我如何使用KentorAuthServices做类似的事情?我没有看到适当的通知来提取这些信息。我只需要用户登录的用户名/电子邮件地址。

Notifications = new WsFederationAuthenticationNotifications
            {
                SecurityTokenValidated = context =>
                {
                    string username = context.AuthenticationTicket.Identity.FindFirst(ClaimTypes.Name).Value;

                    FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, username, DateTime.Now, DateTime.Now.AddMinutes(60), true, "");
                    String encryptedTicket = FormsAuthentication.Encrypt(authTicket);
                    context.Response.Cookies.Append(FormsAuthentication.FormsCookieName, encryptedTicket);
                    return Task.FromResult(0);
                }
            }

ETA:进行更多挖掘我相信AcsCommandResultCreated是我想要挂钩的通知 - 但这永远不会触发?

1 个答案:

答案 0 :(得分:2)

SAML响应中的所有信息都将转换为生成的标识中的声明。如果您使用ASP.Net Identity的默认模板,则可以在ExternalLoginCallback上的AccountController操作中访问外部标识。

成功登录时,肯定会触发AcsCommandResultCreated通知。尝试启用Katana日志记录,并查看登录序列是否因错误而中止。