1

我需要确定用户是否只是销售人员。我的 ASP.NET MVC 4 控制器中有以下内容:

    public ActionResult Index() {
        string salespersonCode = null;

        var roles = Roles.GetRolesForUser();
        if(roles.Count() == 1 && roles.Contains(UserRoles.Salesperson.ToString()))
            salespersonCode = User.Name();

        return View(new ProspectIndexViewModel { Prospects = _crmService.GetActiveProspects(salespersonCode) });
    }

用户可能拥有多个角色。如果用户只有该角色,我想将返回的数据限制为仅属于销售人员的数据。其他三个角色(经理、管理员和销售管理员)将接收整个列表。谢谢!

4

3 回答 3

5

您可以使用All方法。

if(roles.All(r => r == UserRoles.Salesperson.ToString()))

但是我认为您的代码没有问题...

于 2012-08-06T14:46:15.050 回答
0
var roles = Roles.GetRolesForUser();
if(!roles.Any(r => r != UserRoles.Salesperson.ToString()))
    salespersonCode = User.Name();
于 2012-08-06T14:45:25.283 回答
-1

尝试使用

if (Page.User.IsInRole("Salesperson")) { ... };
于 2012-08-06T14:47:05.440 回答