如何确保登录的员工只能查看他的销售记录,但管理员可以查看所有?

时间:2017-06-05 01:10:32

标签: asp.net asp.net-mvc

我正在学习asp.net,我创建了一个简单的Web应用程序,用于使用表单,员工记录存储销售记录,我想知道如何确保没有员工可以查看任何其他人的销售数据员工并对他们进行更改,但管理员或员工经理可以查看他们的所有记录?

现在使用一个简单的模型:

{
public ApplicationUser Employee{ get; set; }
public int EmpId { get; set; }
public int Id { get; set; }
public string Po { get; set; }
public long So { get; set; }
}

2 个答案:

答案 0 :(得分:0)

您可以使用Entity Framework查询仅获取当前登录员工的销售记录。如果用户处于Admin角色,则您将查询所有销售记录。

This问题可能会提供更多帮助。

答案 1 :(得分:0)

您必须检查用户的角色,并根据您查询结果 这里看示例代码:

           var TheUser = db.MyUsersContext.FirstOrDefault(u => u.UserName.Equals(TrimedUser, StringComparison.CurrentCultureIgnoreCase));
        if (TheUser != null)
        {
            var TheRoles =
                 from r in db.MyRoleContext
                 where TheUser.RoleId == r.Id
                 select r.RoleName;
            if (TheRoles != null)
            {
                return TheRoles.ToArray();
            }
            else
            {
                return new string[] { };
            }
        }
        else
        {
            return new string[] { "Viewer" };
        }

并基于返回值,您可以查询数据库