Skip to content

Instantly share code, notes, and snippets.

@joeaudette
Created November 19, 2017 16:46
Show Gist options
  • Save joeaudette/5fc7ebbd83ca8d775772d684c0742ce9 to your computer and use it in GitHub Desktop.
Save joeaudette/5fc7ebbd83ca8d775772d684c0742ce9 to your computer and use it in GitHub Desktop.
sub class cloudscribe AccountService
using cloudscribe.Core.Models;
using cloudscribe.Core.Web.Components;
using cloudscribe.Core.Web.ViewModels.SiteUser;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Security.Claims;
using System.Threading;
using System.Threading.Tasks;
namespace YourNamespace
{
public class MembershipFallbackAccountService : AccountService, IAccountService
{
public MembershipFallbackAccountService(
SiteUserManager<SiteUser> userManager,
SignInManager<SiteUser> signInManager,
IIdentityServerIntegration identityServerIntegration,
ISocialAuthEmailVerfificationPolicy socialAuthEmailVerificationPolicy,
IProcessAccountLoginRules loginRulesProcessor,
IUserStore<SiteUser> userStore,
ILogger<MembershipFallbackAccountService> logger
):base(userManager, signInManager, identityServerIntegration, socialAuthEmailVerificationPolicy, loginRulesProcessor)
{
this.userStore = userStore;
_log = logger;
}
private ILogger _log;
private IUserStore<SiteUser> userStore;
public override async Task<UserLoginResult> TryLogin(LoginViewModel model)
{
var identityResult = await base.TryLogin(model);
if (!identityResult.SignInResult.Succeeded)
{
// l ogin failed with identity so try with your membership implementation
// if success create the identityuser and return a new result
}
return identityResult;
}
}
}
In Startup.cs inject your subclass
services.AddScoped<IAccountService, MembershipFallbackAccountService>();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment