Пример #1
0
        public async void PerformInitialSetup(PicshareIdentityDbContext context)
        {
            // initial configuration will go here
            PicshareUserManager userMgr = new PicshareUserManager(new UserStore <PicshareUser>(context));
            PicshareRoleManager roleMgr = new PicshareRoleManager(new RoleStore <PicshareRole>(context));
            string roleName             = "Administrators";
            string userName             = "******";
            string password             = "******";

            if (!await roleMgr.RoleExistsAsync(roleName))
            {
                await roleMgr.CreateAsync(new PicshareRole(roleName));
            }

            PicshareUser user = await userMgr.FindByNameAsync(userName);

            if (user == null)
            {
                await userMgr.CreateAsync(new PicshareUser { UserName = userName }, password);

                user = await userMgr.FindByNameAsync(userName);
            }

            if (!await userMgr.IsInRoleAsync(user.Id, roleName))
            {
                await userMgr.AddToRoleAsync(user.Id, roleName);
            }
        }
Пример #2
0
        public async Task <IHttpActionResult> Register(LoginModel userDetails)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var user = new PicshareUser
                    {
                        Id           = Guid.NewGuid().ToString(),
                        UserName     = userDetails.Name,
                        PasswordHash = userDetails.Password
                    };

                    var result = await UserManager.CreateAsync(user, userDetails.Password);

                    if (result == IdentityResult.Success)
                    {
                        return(Json(new ResponseModel {
                            HasError = false, JsonContent = user.UserName
                        }));
                    }
                    else
                    {
                        var message = result.Errors.Aggregate((prev, curr) => prev + "/n" + curr);
                        ModelState.AddModelError("", message);
                        return(Json(new ResponseModel {
                            HasError = true, ErrorMessage = message
                        }));
                    }
                }

                return(StatusCode(System.Net.HttpStatusCode.Forbidden));
            }
            catch (Exception ex)
            {
                return(Json <ResponseModel>(new ResponseModel {
                    HasError = true, ErrorMessage = ex.Message
                }));
            }
        }