public async void SetExternalLogin(ExternalLoginData externalLogin, string authenticationType, string cookies) { var user = await UserManager.FindAsync(new UserLoginInfo(externalLogin.LoginProvider, externalLogin.ProviderKey)); var hasRegistered = user != null; if (hasRegistered) { AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie); var oAuthIdentity = await user.GenerateUserIdentityAsync(UserManager, authenticationType); var cookieIdentity = await user.GenerateUserIdentityAsync(UserManager, cookies); var properties = AuthenticationPropertiesConfig.CreateProperties(oAuthIdentity); AuthenticationManager.SignIn(properties, oAuthIdentity, cookieIdentity); } else { IEnumerable <Claim> claims = externalLogin.GetClaims(); var identity = new ClaimsIdentity(claims, authenticationType); AuthenticationManager.SignIn(identity); } }
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { await AuthenticationPropertiesConfig.GrantResourceOwnerCredentials(context, CookieAuthenticationDefaults.AuthenticationType); }