Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC 4(NET 4.5):根据部门为特定员工创建自定义授权_C#_Model View Controller_.net 4.5_Role Base Authorization - Fatal编程技术网

C# MVC 4(NET 4.5):根据部门为特定员工创建自定义授权

C# MVC 4(NET 4.5):根据部门为特定员工创建自定义授权,c#,model-view-controller,.net-4.5,role-base-authorization,C#,Model View Controller,.net 4.5,Role Base Authorization,我对C#真的是个新手。目前,我正在.NET4.5上开发一个内部网系统,需要设置角色和权限。身份验证基于AD登录,所以我将他们的用户名(域\用户)存储在Employee表中。我创建了一个RoleProvider,但该提供程序仅对员工的一般角色进行授权。我想实现的是,例如:部门[技术]的任何员工都不能查看部门[销售]部分。而且,在技术部门的员工中,只有该部门的经理才能管理该特定部门。我越深入调查授权,我就迷失了方向 我数据库中的内容: [TblDepartment]有许多[TBLSTAFF],并且[

我对C#真的是个新手。目前,我正在.NET4.5上开发一个内部网系统,需要设置角色和权限。身份验证基于AD登录,所以我将他们的用户名(域\用户)存储在Employee表中。我创建了一个RoleProvider,但该提供程序仅对员工的一般角色进行授权。我想实现的是,例如:部门[技术]的任何员工都不能查看部门[销售]部分。而且,在技术部门的员工中,只有该部门的经理才能管理该特定部门。我越深入调查授权,我就迷失了方向

我数据库中的内容:

[TblDepartment]有许多[TBLSTAFF],并且[TBLSTAFF]映射到TblEmployee

[TblRole]有许多[TblRoleLevel],并且[TblRole:Employee]映射到TblEmployee

我这样做是因为,另一位同事正在为销售部门开发客户数据库


一周来,我一直在寻找这样的解决方案。

您可以使用.Net 4.5中提供的MVC 4自定义属性和过滤器。按照下面的链接进行操作


尽量避免发布链接,而在可能的情况下直接写下答案,具体取决于您的AD登录类型(例如,如果您使用用户名和密码并对照AD的LDAP进行检查,或者如果您使用带有协商/NTLM的windows身份验证模块提供windows凭据的单点登录)您可能能够查询LDAP或ClaimSidenty以获取AD帐户的GroupMembership,并且您可以从中解析特定于应用程序的角色/权限those@DarkSquirrel42在此之前,,我已经检查了广告,我猜管理员只是懒散地把每个人都放在“用户”组中,而没有在广告中设置业务细节,这就是为什么我必须使用sql数据库做所有事情。否则,我的任务就容易了。