2011-05-19 128 views
1

我正在使用MongoDB来存储用户和密码(而不是sql)。我有自己的分配角色给用户的机制。我想装饰我的角色控制器动作,如下:ASP.NET MVC使用自定义身份验证时分配角色

[Authorize(Roles = "Administrators")] 

我登录的代码如下所示:

if (mongo.AuthenticateUser(model.UserName, model.Password)) 
{ 
    FormsService.SignIn(model.UserName, model.RememberMe); 
} 

什么是最简单的办法,我“戳”一个用户的角色到用户首次登录时(数据库将为我提供角色名称,我只需要在用户上下文中设置它们)。我想我在寻找我的代码看起来是这样的:

if (mongo.AuthenticateUser(model.UserName, model.Password)) 
{ 
    if ((mongo.IsAdmin) 
    { 
     // How do I grant the admin role??? 
     SomeSortOfUserContext.Add('Administrators');???????? 
    } 
    FormsService.SignIn(model.UserName, model.RememberMe); 
} 

回答

0

添加角色的用户主要在Application_AuthenticateRequest在Global.asax中。

检查this出;