public void Init()
        {
            IdentityHelper ihelper  = IdentityHelper.GetInstance();
            string         userName = "******";
            AppUser        user     = new AppUser
            {
                AccountName = userName,
                Name        = "James",
                Mobile      = "1888888888",
                Email       = "*****@*****.**"
            };
            string password = "******";
            var    dbUser   = database.Users.SingleOrDefault(u => u.AccountName == userName);

            if (dbUser != null)
            {
                //等一下注释掉这一句
                database.Users.Remove(dbUser);
                database.SaveChanges();
            }
            IdentityResult result = ihelper.CreateUser(user, password, AppRoleEnum.OrgnizationMember, OrganizationEnum.SEA团队);

            testclaims = ihelper.CreateClaims(userName, password, userName);
            helper     = VolunteerHelper.GetInstance(testclaims);
        }
        public void EditVolunteerTest()
        {
            #region init
            IdentityHelper ihelper  = IdentityHelper.GetInstance();
            string         userName = "******";
            AppUser        user     = new AppUser
            {
                AccountName = userName,
                Name        = "James",
                Mobile      = "1888888888",
                Email       = "*****@*****.**"
            };
            string  password = "******";
            AppUser dbUser   = database.Users.SingleOrDefault(u => u.AccountName == userName);
            if (dbUser != null)
            {
                database.Users.Remove(dbUser);
                database.SaveChanges();
            }
            IdentityResult result1 = ihelper.CreateUser(user, password, AppRoleEnum.OrgnizationMember, OrganizationEnum.SEA团队);
            testclaims = ihelper.CreateClaims(userName, password, userName);
            helper     = VolunteerHelper.GetInstance(testclaims);
            #endregion
            #region 新建一个志愿者对象
            Volunteer v = new Volunteer
            {
                StudentNum = 0401,
                Name       = "EditTestName",
                Class      = "TestClass",
                Email      = "*****@*****.**",
                Room       = "testroom"
            };
            helper.AddVolunteer(v);
            #endregion

            #region 第一次修改
            v.Name = "ModifiedEditTestName";
            var tempvolunteer = helper.FindVolunteer(v.StudentNum);
            helper.EditVolunteer(tempvolunteer, v);//需要重建一个volunteer实体,因为实体v在加入数据库之后会自动更新链接到数据库中的条目。
            tempvolunteer = helper.FindVolunteer(v.StudentNum);
            if (!Volunteer.AreSame(v, tempvolunteer))
            {
                Assert.Fail("修改志愿者信息失败");
            }
            #endregion

            #region 第二次修改
            v.Name        = "EditByParamTestName";
            tempvolunteer = helper.FindVolunteer(v.StudentNum);
            helper.EditVolunteer(tempvolunteer, v.StudentNum, v.Name);
            tempvolunteer = helper.FindVolunteer(v.StudentNum);
            if (!Volunteer.AreSame(v, tempvolunteer))
            {
                Assert.Fail("第二次修改志愿者信息失败");
            }
            #endregion
            var result3 = helper.FindVolunteer(v.StudentNum);
            database.Volunteers.Remove(result3);//Remove
        }
        public void AddToRoleTest()
        {
            string  accountName = "!@#$%^&*()_+-=1234567890qwertyuiop[]\\{}|asdfghjkl;':\"zxcvbnm,./<>?";
            AppUser dbUser      = database.Users.SingleOrDefault(u => u.AccountName == accountName);

            if (dbUser != null)
            {
                database.Users.Remove(dbUser);
                database.SaveChanges();
            }

            AppUser user = new AppUser
            {
                Name        = "张三李四·.",
                AccountName = accountName,
                Email       = "*****@*****.**",
                Mobile      = "18888888888"
            };
            string         password = "******"zxcvbnm,./<>?";
            IdentityResult result   = helper.CreateUser(user, password, AppRoleEnum.OrgnizationMember, OrganizationEnum.SEA团队);

            if (!result.Succeeded)
            {
                Assert.Inconclusive("CreateUser方法运行失败,本测试无法运行。");
            }
            dbUser = database.Users.SingleOrDefault(u => u.AccountName == user.AccountName);
            helper.AddToRole(dbUser.Id, AppRoleEnum.LogViewer);
            AppUserIdentityClaims claims = helper.CreateClaims(user.AccountName, password);

            if (!claims.IsAuthenticated)
            {
                Assert.Inconclusive("CreateClaims方法运行失败,未取得IdentityClaims。");
            }
            if (!claims.IsInRole(AppRoleEnum.LogViewer))
            {
                Assert.Fail("角色添加失败!");
            }
            database.Users.Remove(dbUser);
            database.SaveChanges();
        }
        public void Init()
        {
            AppUser user     = CreateUser();
            string  password = "******";
            var     dbUser   = database.Users.SingleOrDefault(u => u.AccountName == user.AccountName);

            if (dbUser != null)
            {
                //等一下注释掉这一句
                database.Users.Remove(dbUser);
                database.SaveChanges();
            }
            IdentityResult result = identityhelper.CreateUser(user, password, Interface.AppRoleEnum.OrgnizationMember, OrganizationEnum.SEA团队);

            testclaims      = identityhelper.CreateClaims(user.AccountName, password);
            volunteerhelper = VolunteerHelper.GetInstance(testclaims);
        }
示例#5
0
        public ActionResult Login(LoginViewModel model)
        {
            //模型不符合要求,返回
            if (!ModelState.IsValid)
            {
                return(View());
            }

            var claims = helper.CreateClaims(model.Name, model.Password);

            //登录失败,返回
            if (!claims.IsAuthenticated)
            {
                return(View());
            }

            //登陆成功,判断是否需要记录Cookies
            if (model.RememberMe)
            {
                Request.Cookies.Add(new HttpCookie("RememberMe")
                {
                    ["Name"]     = EncryptCookie(model.Name),
                    ["Password"] = EncryptCookie(model.Password),
                    Expires      = DateTime.Now.AddDays(1)
                });
            }
            else
            {
                var cookie = Request.Cookies["RememberMe"];
                if (cookie != null)
                {
                    cookie.Expires = DateTime.Now.AddDays(-1);
                    Request.Cookies.Add(cookie);
                }
            }

            //添加登录态
            HttpContext.Session["Claim"] = claims.User;

            return(new HttpStatusCodeResult(200));
        }