C# MVC区域独立成员资格

C# MVC区域独立成员资格,c#,asp.net,asp.net-mvc,asp.net-mvc-4,simplemembership,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Simplemembership,我不知道怎样才能解决那个问题。简言之,我想在我的应用程序项目的一个领域拥有单独的成员资格。但是这种“分离”的成员身份必须使用与“主”成员身份相同的数据库 在我的主要项目中,我使用了SimpleMembershipProvider 例如: 当“普通”用户登录时,我可以在主项目的所有控制器和视图中使用HttpContext.user.Identity获取有关他的信息-他刚刚被登录。但是当他进入specialarea()时,HttpContext.User.Identity必须在该区域返回空值-用户是

我不知道怎样才能解决那个问题。简言之,我想在我的应用程序项目的一个领域拥有单独的成员资格。但是这种“分离”的成员身份必须使用与“主”成员身份相同的数据库

在我的主要项目中,我使用了
SimpleMembershipProvider

例如:

当“普通”用户登录时,我可以在主项目的所有控制器和视图中使用
HttpContext.user.Identity
获取有关他的信息-他刚刚被登录。但是当他进入
special
area()时,
HttpContext.User.Identity
必须在该区域返回空值-用户是“未标记的”

另一方面,当“特殊”用户输入并成功登录时,他在所有
特殊
区域获得授权,不包括主应用程序(仅在该区域)。在主项目中,他是“未被跟踪的”-他必须登录(与具有“正常”角色的用户)


如何实现这一点而不令人头痛?

您所描述的是基于角色的安全性的教科书用例

将角色分配给用户,并根据该角色的成员资格授予对某个区域的访问权限。因此,您将创建一个管理员角色,并且只授予具有管理员角色的用户访问管理员部分的权限。这可以通过“[Authorize(Roles=“Administrators”)]属性轻松完成


您还可以在应用程序中使用角色来定义他们看到的字段或可以编辑的字段。您可以添加代码,通过
User.IsInRole(“管理员”)
检查对角色的访问权限,并在编辑或查看字段周围添加条件逻辑。

使用角色!每个区域都有一个角色,然后在这些区域的每个控制器上都有
[Authorize(Roles=“thisrea”)]
,这就是我要做的事情!然后,您可以创建一些自定义属性和过滤器!