我正在查看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()
{
...
}
}
提前致谢。
答案 0 :(得分:1)
它将检查当前主体(HttpContext.Current.User.Identity.Name)中的当前用户名,该主体根据设置使用窗体/窗口帐户,或者如果不在Web环境中,它将使用当前的Windows用户登录系统。
答案 1 :(得分:0)
对我而言,它们似乎有一个自定义角色提供程序,因此会覆盖GetAllRoles方法,以便可以从数据源获取角色。在没有看到更多细节的情况下,我只能假设,但是当用户注册时,他们可能被分配了一个特定的角色。然后,他们可以使用Roles.IsUserInRole
方法来检测用户分配的角色。自定义角色提供程序here还有更多内容可以解释为什么方法被覆盖。