C# 如何根据为用户定义的访问权限检查表项?
我有两个表,其中包含以下列:C# 如何根据为用户定义的访问权限检查表项?,c#,sql-server,linq,C#,Sql Server,Linq,我有两个表,其中包含以下列: SELECT TOP 1000 [Id] ,[UserId] ,[MenuId] ,[parentid] FROM [TravelEnterDB].[dbo].[UserAccess] SELECT TOP 1000 [Id] ,[Title] ,[parentId] ,[IsActive] ,[Url] ,[OrderMenu] ,[IconNam
SELECT TOP 1000 [Id]
,[UserId]
,[MenuId]
,[parentid]
FROM [TravelEnterDB].[dbo].[UserAccess]
SELECT TOP 1000 [Id]
,[Title]
,[parentId]
,[IsActive]
,[Url]
,[OrderMenu]
,[IconName]
FROM [TravelEnterDB].[dbo].[AdminMenu]
所以这里是交易,我想在MVC中的一个表中显示所有带有“parenId=0”的“AdminMenu”记录,我想勾选由“UserId”提供给特定用户的项目。我有一些代码,但它们工作不正常。
代码如下:
public ActionResult ADDAccess(int? id, string UserId)
{
List<MenuClass> model = new List<MenuClass>();
var result =(from adminMenu in db.AdminMenus
where adminMenu.parentId == 0
select new
{
adminMenu.Id,
adminMenu.IsActive,
adminMenu.OrderMenu,
adminMenu.Title,
adminMenu.Url,
adminMenu.parentId,
adminMenu.IconName,
});
var users = db.UserAccesses.Where(p => p.UserId == UserId).ToList();
var t = (from m in users
join r in result on m.MenuId equals r.Id
select new
{
r.Id,
r.IsActive,
r.OrderMenu,
r.Title,
r.Url,
r.parentId,
r.IconName,
m.UserId,
m.MenuId
}).ToList();
foreach (var item in t)
{
MenuClass menu = new MenuClass();
menu.IconName = item.IconName;
menu.IsActive = item.IsActive;
menu.Title = item.Title;
menu.Url = item.Url;
menu.Id = item.Id;
if (item.Id == item.MenuId && item.UserId == UserId)
{
menu.IsChecked = true;
}
menu.parentId = (int)item.parentId;
model.Add(menu);
}
return View(model);
}
public ActionResult ADDAccess(int?id,string UserId)
{
列表模型=新列表();
var result=(来自db.AdminMenus中的adminMenu
其中adminMenu.parentId==0
选择新的
{
adminMenu.Id,
adminMenu.IsActive,
adminMenu.OrderMenu,
adminMenu.Title,
adminMenu.Url,
adminMenu.parentId,
adminMenu.IconName,
});
var users=db.useraccess.Where(p=>p.UserId==UserId.ToList();
var t=(来自用户中的m)
在m.MenuId等于r.Id的结果中加入r
选择新的
{
r、 身份证,
r、 我很活跃,
r、 订单菜单,
r、 头衔,
r、 网址,
r、 父ID,
r、 我的名字,
m、 用户ID,
m、 梅纽德
}).ToList();
foreach(t中的var项目)
{
菜单类菜单=新建菜单类();
menu.IconName=item.IconName;
menu.IsActive=item.IsActive;
menu.Title=item.Title;
menu.Url=item.Url;
menu.Id=item.Id;
if(item.Id==item.MenuId&&item.UserId==UserId)
{
menu.IsChecked=true;
}
menu.parentId=(int)item.parentId;
模型。添加(菜单);
}
返回视图(模型);
}