将角色添加到现有的Asp.net mvc网站

时间:2014-12-14 19:15:14

标签: c# asp.net-mvc

大家好,                我将自己的注册和登录系统实现到我正在编写的博客应用程序中。我使用数据库第一种方法并创建了一些表(dbo.UserProfiles - 包含用户信息)和其他表,我用它生成实体数据模型。然而,我进入了一个需要创建管理面板的阶段,然后我意识到我需要一种方法将每个用户与特定角色(主持人,管理员,访客)相关联,并根据这些角色限制对某些页面的访问。     我的问题是,我如何实现现有数据库的角色提供程序,因为我没有使用asp.net mvc的默认会员系统,而且我可以使用这些角色来允许或限制访问我网站中的某些页面。 / p>

3 个答案:

答案 0 :(得分:0)

您可以通过继承MembershipProvider类来创建自己的成员资格提供程序。 MSDN有很好的示例说明如何执行此操作。

http://msdn.microsoft.com/en-us/library/44w5aswa(v=vs.100).aspx

您还需要实施角色提供者。

http://msdn.microsoft.com/en-us/library/tksy7hd7(v=vs.100).aspx

答案 1 :(得分:0)

您可以创建自己的自定义主体和标识。实现IsInRole方法。在global.asax Application_AuthenticateRequest方法中验证您的请求。然后只需将[Authorize(Roles = "Admin")]属性添加到指定的操作中。

这是一个很好的exampleansver

答案 2 :(得分:0)

以下示例说明如何指定控制器仅供管理员角色中的用户使用。

[Authorize(Roles="Administrators")]
public class AdminController : Controller
{
    . . .
}

以下示例说明如何将对控制器内部操作的访问权限限制为仅指定的角色列表。

[Authorize(Roles="Moderators,Administrator")]
public List<myObject> GetRestrictedData()
{
    . . .
}

以下示例显示如何将控制器的访问权限仅限于指定的用户。

[Authorize(Users="Jhon,Games")]
public class RestrictedContentController : Controller
{
    . . .
}

Reference