繁体   English   中英

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

[英]Adding Roles to an existing Asp.net mvc website

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

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

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

您还需要实施角色提供程序。

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

您可以创建自己的自定义主体和身份。 实现IsInRole方法。 使用global.asax Application_AuthenticateRequest方法对请求进行身份验证。 然后只需将[Authorize(Roles = "Admin")]到您指定的操作即可。

这是一个很好的例子 ,很生气

以下示例显示了如何指定仅管理员角色的用户可以使用控制器。

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

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

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

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

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

参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM