使用角色和基本软件设计问题籍

时间:2010-01-05 17:32:55

标签: c# asp.net asp.net-membership roles

我正在查看API,我看到以下两个调用:

API.Users.Roles.getAllRoles();

API.Admin.Roles.getAllRoles();

我想知道的是这些呼叫是如何在其中使用的 Web程序的上下文。由于Admin和Users都是属性, 究竟是什么得到的;组;在做什么?通话如何知道哪个管理员 (或用户)正在打电话?

我的预感是,这与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()
    { 
      ...
    }
 }

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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