2013-05-07 59 views
1

首先,我想说我知道有很多这方面的话题,我也在网上搜索,了解mvc处理安全性和保留用户信息等的整个概念,但我想从专业人士那里得到一些建议和想法,而我正在阅读这篇文章,所以我要解释我的情况,我很感谢帮助。对自定义数据库的MVC4认证和授权

可以说我有一个名为“用户”

public class Users : KySerializableObject 
{  
    [required] 
    public virtual string Email { get; set; } 

    [required] 
    public virtual string userName {get; set; } 

    public virtual UserType UserType { get; set; } 
    [Required] 
    [ForeignKey("UserType")] 
    public virtual int UserTypeID { get; set; } 
} 
现在

我所知道的是,MVC提供了适用于简单的情况下,一个simpleMembership定制表,但因为我有不同类型的用户和为我的用户提供的其他信息,我想知道的是,如何为具有不同角色的用户使用[authorize]标签,我更喜欢使用我自己的角色表,以及我如何处理登录过程?我的意思是我应该使用FormsAuthentication的一部分,或者我甚至不确定我是否应该使用它,我真的迷路了,我很乐意听到你们的建议。我不是要求代码或任何东西,任何链接到一个良好的指导,解释我的情况将是非常棒的。

再次感谢

回答

0

我有同样的情况,我下面的 验证Forms身份验证 授权我写我自己的包装类RoleProvider的过程。这样,你可以直接使用像

[授权(规则=“管理,用户”)]

如果你的问题是认证/授权它会帮助你完美。

0

Please take a look at this forum discussion in the ASP.Net forum

如果您发现身份验证的方式,你应该已经在这里钉的代码。但是,对于您的要求,请大家仔细看这段代码

string[] roles = //you add your custom roles for the current user to this string list 
GenericPrincipal userPrincipal = new GenericPrincipal(new GenericIdentity(authTicket.Name), 

角色); //然后创建一个通用的原则

Context.User = userPrinciple; 

记住,如果你正在外面把这个代码Global.asax文件中,然后ContextHttpContext.Current

现在你可以使用[Authorize(Roles = "yourRole1, yourRole2")]

希望有所帮助。