尝试跟WTM系列视频教程的数据权限, 但不成功, , Patient List VM没有加入数据权限

发布于 2020-07-22 20:54:20

WTM系列视频教程 - 权限和认证(二)
https://edu.csdn.net/course/play/27568/384524?spm=1002.2009.3001.4024

  1. 下载了 ERCS(第五讲).rar
  2. 修改了 Program.cs, 加入dataPrivilegeSettings語句
public static IHostBuilder CreateWebHostBuilder(string[] args)
{

    return
        Host.CreateDefaultBuilder(args)
         .ConfigureWebHostDefaults(webBuilder =>
         {
             webBuilder.ConfigureServices(x =>
            {
                //1. define Data Privileges
                var pris = new List<IDataPrivilege>
                {
                    new DataPrivilegeInfo<City>("地點", y => y.Name),
                };
                x.AddFrameworkService(dataPrivilegeSettings: pris);
  1. 测试了, 下拉菜单中真的看不到城市地点
  2. 修改了 PatientListVM.cs 中的GetSearchQuery(), 加入DPWhere語句
public override IOrderedQueryable<Patient_View> GetSearchQuery()
{
    var query = DC.Set<Patient>()
        .CheckContain(Searcher.PatientName, x=>x.PatientName)
        .CheckContain(Searcher.IdNumber, x=>x.IdNumber)
        .CheckEqual(Searcher.Gender, x=>x.Gender)
        .CheckEqual(Searcher.Status, x=>x.Status)
        .CheckWhere(Searcher.SelectedVirusesIDs,x=>DC.Set<PatientVirus>().Where(y=>Searcher.SelectedVirusesIDs.Contains(y.VirusId)).Select(z=>z.PatientId).Contains(x.ID))
        .DPWhere(LoginUserInfo.DataPrivileges, x => x.LocationId)
        .Select(x => new Patient_View
        {
            ID = x.ID,
            PatientName = x.PatientName,
            IdNumber = x.IdNumber,
            Gender = x.Gender,
            Status = x.Status,
            Birthday = x.Birthday,
            Name_view = x.Location.Name,
            Name_view2 = x.Hospital.Name,
            PhotoId = x.PhotoId,
            VirusName_view = x.Viruses.Select(y=>y.Virus.VirusName).ToSpratedString(null,","), 
        })
        .OrderBy(x => x.ID);
    return query;
}
  1. 测试时没有作用...
  2. 设定了数据权限后, 仍没有作用, 所有记录也显示出来了.

不知道少了什么, 烦请大家指导一下...谢谢

查看更多

关注者
0
被浏览
183
1 个回答
刘亮
刘亮 2020-07-24
专业编码30年

代码看起来没有问题,也许是当初那个代码框架版本的问题,你尝试更新框架到最新版试试。
另外,csdn里你点课件,隔几课会有那个阶段的代码的

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览