Пример #1
0
 /// <summary>
 /// 角色管理
 /// </summary>
 /// <param name="userManager"></param>
 /// <param name="roleManager"></param>
 /// <param name="logger"></param>
 public RoleManagerController(AspNetUserManager userManager, AspNetRoleManager roleManager, ILoggerFactory logger)
 {
     this.userManager = userManager;
     this.roleManager = roleManager;
     this.logger      = logger;
     mapper           = roleManager.Mapper;
 }
Пример #2
0
        public async Task <IActionResult> CreateAllActionAsync()
        {
            AspNetRoleManager rolemger = GetService <AspNetRoleManager>();
            IdentityRole      admin    = await rolemger.FindAsync(s => new IdentityRole {
                Id = s.Id
            }, d => d.Name.Equals("管理员"));

            var id = User.GetUserId();
            var p  = PermissionManager.GetAllActionByAssembly();

            _permissionManager.Store.AutoSaveChanges = false;
            rolemger.Store.AutoSaveChanges           = false;
            var bb = p.Each(action => { if (id.IsNotNullOrEmpty())
                                        {
                                            action.CretaedUser = id;
                                        }
                            });

            foreach (var item in bb)
            {
                await rolemger.AddClaimAsync(admin, new Claim(item.Id, item.Id));

                await _permissionManager.Store.CreateAsync(item, default);
            }
            rolemger.Store.AutoSaveChanges           = true;
            _permissionManager.Store.AutoSaveChanges = true;
            await rolemger.Store.SaveChangesAsync();

            var b = await _permissionManager.Store.SaveChangesAsync();

            return(Json(b));
        }
Пример #3
0
 public CreateModel(UserManager <IdentityUser <Guid> > userManager, RoleManager <IdentityRole <Guid> > roleManager, AspNetRoleManager <IdentityUserRole <Guid> > netRoleManager, ApplicationDbContext db)
 {
     _userManager = userManager;
     _roleManager = roleManager;
     //_netRoleManager = netRoleManager;
     Db = db;
 }
Пример #4
0
        public IdentityServiceFactory()
        {
            var dataProtectorTokenProvider = new DataProtectorTokenProvider <DbUser>(
                new EphemeralDataProtectionProvider(new NullLoggerFactory()), null, new NullLogger <DataProtectorTokenProvider <DbUser> >());

            // service provider
            var serviceProviderMock = new Mock <IServiceProvider>();

            var serviceScopeMock = new Mock <IServiceScope>();

            serviceScopeMock.Setup(x => x.ServiceProvider).Returns(serviceProviderMock.Object);

            var serviceScopeFactoryMock = new Mock <IServiceScopeFactory>();

            serviceScopeFactoryMock.Setup(x => x.CreateScope()).Returns(serviceScopeMock.Object);

            var authenticationServiceMock = new Mock <IAuthenticationService>();

            serviceProviderMock.Setup(x => x.GetService(typeof(IServiceScopeFactory))).Returns(serviceScopeFactoryMock.Object);
            serviceProviderMock.Setup(x => x.GetService(typeof(DataProtectorTokenProvider <DbUser>))).Returns(dataProtectorTokenProvider);
            serviceProviderMock.Setup(x => x.GetService(typeof(IAuthenticationService))).Returns(authenticationServiceMock.Object);

            // http context
            var httpContextAccessorMock = new Mock <IHttpContextAccessor>();
            var httpContext             = new DefaultHttpContext {
                ServiceScopeFactory = serviceScopeFactoryMock.Object
            };

            httpContextAccessorMock.Setup(x => x.HttpContext).Returns(httpContext);
            var httpContextAccessor = httpContextAccessorMock.Object;

            // identity services
            var identityOptionsAccessorMock = new Mock <IOptions <IdentityOptions> >();

            identityOptionsAccessorMock.Setup(x => x.Value).Returns(() => new IdentityOptions
            {
                Tokens = new TokenOptions
                {
                    ProviderMap = new Dictionary <string, TokenProviderDescriptor>
                    {
                        { TokenOptions.DefaultProvider, new TokenProviderDescriptor(typeof(DataProtectorTokenProvider <DbUser>)) },
                        // { TokenOptions.DefaultEmailProvider, new TokenProviderDescriptor(typeof(EmailTokenProvider<DbUser>)) }
                    }
                },
                User = new UserOptions
                {
                    RequireUniqueEmail = true
                }
            });
            var identityOptionsAccessor = identityOptionsAccessorMock.Object;

            var identityErrorDescriber = new IdentityErrorDescriber();
            var lookupNormalizer       = new UpperInvariantLookupNormalizer();

            var connectionFactory = new DbConnectionFactory();

            var userStore = new UserStore <Guid, DbUser, DbRole>(connectionFactory, identityErrorDescriber);
            var roleStore = new RoleStore <Guid, DbRole>(connectionFactory, identityErrorDescriber);

            var userManager = new UserManager <DbUser>(userStore, identityOptionsAccessor, new PasswordHasher <DbUser>(), null, null,
                                                       lookupNormalizer, identityErrorDescriber, serviceProviderMock.Object, new NullLogger <UserManager <DbUser> >());

            userManager.RegisterTokenProvider(TokenOptions.DefaultProvider, dataProtectorTokenProvider);

            var roleManager = new AspNetRoleManager <DbRole>(roleStore, null, lookupNormalizer, identityErrorDescriber,
                                                             new NullLogger <RoleManager <DbRole> >(), httpContextAccessor);
            var userClaimsPrincipalFactory = new UserClaimsPrincipalFactory <DbUser, DbRole>(userManager, roleManager, identityOptionsAccessor);
            var signInManager = new SignInManager <DbUser>(userManager, httpContextAccessor, userClaimsPrincipalFactory, identityOptionsAccessor,
                                                           new NullLogger <SignInManager <DbUser> >(), null, null);

            UserManager   = userManager;
            RoleManager   = roleManager;
            SignInManager = signInManager;
        }