如何在ASP.NET Identity,OWIN和OAuthAuthorizationServerProvider中添加“记住我”功能

时间:2018-11-21 20:52:03

标签: authentication asp.net-identity owin forms-authentication

我需要使用OAuthAuthorizationServerProvider和AuthenticationManager具有“记住我”功能。

这是提供者进行身份验证的方式:

    public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
    {
        var userManager = context.OwinContext.GetUserManager<ApplicationUserManager>();

        ApplicationUser user = await userManager.FindAsync(context.UserName, context.Password);

        if (user == null)
        {
            context.SetError("invalid_grant", "El nombre de usuario o la contraseña no son correctos.");
            return;
        }

        ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(userManager,
           OAuthDefaults.AuthenticationType);
        ClaimsIdentity cookiesIdentity = await user.GenerateUserIdentityAsync(userManager,
            CookieAuthenticationDefaults.AuthenticationType);

        AuthenticationProperties properties = CreateProperties(user.UserName);
        AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, properties);
        context.Validated(ticket);
        context.Request.Context.Authentication.SignIn(cookiesIdentity);
    }

即使在最糟糕的情况下,参数中接收到的上下文也没有包含指示用户在登录表单中选择了“记住我”复选框的标志。

有任何提示吗?

问候 海梅

0 个答案:

没有答案