链接外部登录失败-Uprotected票证

时间:2018-09-20 20:49:47

标签: identityserver4

我已经为客户构建了一个基于Identity Server 4的解决方案,并且几乎所有功能都很好:)但是,我有一个不一致的问题;这就是问题。有时会起作用,有时会失败。这是当用户登录后,访问设置页面,然后尝试将外部登录名(例如Facebook或Google)链接到该帐户。

将调用控制器,并执行以下代码而不会出现任何问题:

public async Task<IActionResult> LinkLogin(string provider, string cancelUrl = null)
    {
        // Clear the existing external cookie to ensure a clean login process
        await this.HttpContext.SignOutAsync(IdentityConstants.ExternalScheme);

        // Request a redirect to the external login provider to link a login for the current user
        var redirectUrl = this.Url.Action(nameof(this.LinkLoginCallback));

        var properties = this.signInManager.ConfigureExternalAuthenticationProperties(
            provider,
            redirectUrl,
            this.userManager.GetUserId(this.User));
        return new ChallengeResult(provider, properties);
    }

但是回调并不总是被调用,当回调失败时,我在日志中得到以下错误:

  

Identity.Application未通过身份验证。失败消息:取消保护票证失败

1 个答案:

答案 0 :(得分:0)

您在玩一台服务器吗?如果是这样,他们必须使用相同的数据保护密钥,因此必须具有共享的数据保护存储。