如果我分配角色并且每次使用User.Identity.GetUserId()时身份是否会失败?

时间:2016-04-27 06:08:42

标签: asp.net-mvc security asp.net-identity

我想创建门户网站,其中将有3-4种类型的多个用户。所以我在Startup.cs中创建了角色,如

  public void Configuration(IAppBuilder app)
    {
        ConfigureAuth(app);
        createRolesandUsers();
    }


    // In this method we will create default User & roles 
    private void createRolesandUsers()
    {
        ApplicationDbContext context = new ApplicationDbContext();

        var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
        var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));



        if (!roleManager.RoleExists("Admin"))
        {
            var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
            role.Name = "Admin";
            roleManager.Create(role);

            var user = new ApplicationUser();
            user.UserName = "1";
            user.Email = "a@b.com";
            user.ScreenName = "Ra";
            user.UserType = "Admin";
            string userPWD = "1";
            var chkUser = UserManager.Create(user, userPWD);

            if (chkUser.Succeeded)
            {
                var result1 = UserManager.AddToRole(user.Id, "Investor");
            }
        }

它创建了Usertypes并在登录页面上我给了单选按钮来选择自己的类型。 现在,假设有4个角色。

  1. 管理员
  2. 播放器
  3. 教练
  4. 假设有10人注册到网站

    2人为管理员 4人为玩家 4人担任教练。

    现在每个人都有它的类型和用户ID。如果他们登录,由于Autorize属性,他们无法访问彼此的控制器。但我的问题是,4名球员呢?他们是否能够访问彼此的帐户?  他们拥有相同的授权权利,他们也是经过身份验证的。如何阻止相同类型的用户访问彼此的帐户? 我用&#34; User.Identity.GetUserId()&#34;在每个页面上获取当前用户,我按当前ID记录所有交易。

0 个答案:

没有答案