2010-01-05 78 views
0

我在寻找一个API的过程中,我看到了下面的两个来电:基本软件设计问题使用角色和成员

API.Users.Roles.getAllRoles(); 

API.Admin.Roles.getAllRoles(); 

我想知道的是如何这些呼叫的使用在 内的Web程序的上下文。既然管理员和用户都是属性, 到底是什么;组;在做什么?电话如何知道哪个管理员(或用户)正在拨打电话?

我的直觉是,这与API类是如何实现(和会话?) 有关,但我很感谢 在这里的演练,所以我完全理解它。

的(缩写)类结构如下所示:预先

public class API() 
{ 
public Admin Admin { get; private set; } 
public Users Users { get; private set; } 
} 

public class Users 
{ 
public Roles Roles { get; private set; } 
    ... 
} 

public class Roles 
{ 

    public override string[] GetAllRoles() 
    { 
     ... 
    } 
} 

感谢。

回答

0

对我来说,他们似乎有一个自定义角色提供者,因此覆盖GetAllRoles方法,以便角色可以从数据源获得。没有看到更多的细节,我只能假设,但是当用户注册时,他们可能被分配了一个特定的角色。然后,他们可以使用Roles.IsUserInRole方法来检测用户分配的角色。自定义角色提供者here的更多内容将解释为什么方法被覆盖。

1

它将根据安装程序检查使用窗体/ windows帐户的当前主体(HttpContext.Current.User.Identity.Name)中的当前用户名,或者如果不在Web环境中,它将使用当前窗口用户登录到系统。