C# 如何向现有ASP.NET Web应用程序添加基于角色的授权

C# 如何向现有ASP.NET Web应用程序添加基于角色的授权,c#,mysql,asp.net,entity-framework,roles,C#,Mysql,Asp.net,Entity Framework,Roles,我是新手,我使用的是Visual Studio 2017,我一直在阅读有关ASP.NET身份和成员资格提供商的信息,但不太了解如何正确实现它。我有一个Web应用程序(ASP.NET 4.5,MVC 5.2),它是作为一个没有身份验证的空项目创建的,使用实体框架和ADO.NET实体数据模型(edmx文件)与我的数据库(MySQL)连接。我想做的是检查这个数据库上的角色,并根据它们向用户授予授权,最好的方法是什么?这是我的数据库: 以及我的控制器中的授权方法(登录) 不要使用会话,使用索赔实体。因

我是新手,我使用的是Visual Studio 2017,我一直在阅读有关ASP.NET身份和成员资格提供商的信息,但不太了解如何正确实现它。我有一个Web应用程序(ASP.NET 4.5,MVC 5.2),它是作为一个没有身份验证的空项目创建的,使用实体框架和ADO.NET实体数据模型(edmx文件)与我的数据库(MySQL)连接。我想做的是检查这个数据库上的角色,并根据它们向用户授予授权,最好的方法是什么?这是我的数据库:

以及我的控制器中的授权方法(登录)


不要使用
会话
,使用
索赔实体
。因为MVC5是一个好的开始。
 [HttpPost]
    public ActionResult Authorize(contactos contactosModel)
    {



            using (proyectob_dbEntities db = new proyectob_dbEntities())
            {
                var contactoDetails = db.contactos.Where(x => x.rut == contactosModel.rut && x.password == contactosModel.password).FirstOrDefault();
                if (contactoDetails == null)
                {
                    contactosModel.LoginError = "Rut o Password incorrectos";
                    return View("Login", contactosModel);
                }
                else
                {

                    //FormsAuthentication.SetAuthCookie(contactosModel.rut, rememberMe = true);
                    Session["userID"] = contactoDetails.id;
                    return RedirectToAction("/Home", "Proyectob");
                }
            }

    }