通过查询结果阻止访问
我有医院和医疗专科。
My Medical Specialties页面以这种方式按医院ID返回数据:
localhost / MedicalSpecialities / 1,1是HospitalID。 如果我手动更改链接,我可以访问任何医院信息。
我有这样的用户与医院相关联:
我需要查询用户已关联的医院ID,并检查当前的HospitalID是否在列表中。
这将返回用户已连接的所有医院:
var userID = User.Identity.GetUserId(); var result = db.Hospitals.Include("UserHospitals") .Where(x => x.UserHospitals .Any(u => u.Id == userID)) .ToList();
您基本上可以更新Any()
方法中的条件,以包含对HospitalId列的检查。
var hospitalId =5; var result = db.Hospitals .Include(y=>y.UserHospitals) .Where(x => x.UserHospitals.Any(u => u.Id == userID && u.HospitalID==hospitalId )) .ToList();
如果您期望这种情况只有一家医院,您也可以考虑使用FirstOrDefault()
方法。
var singleHospital = db.Hospitals .Include(y=>y.UserHospitals) .Where(x => x.UserHospitals.Any(u => u.Id == userID && u.HospitalID==hospitalId )) .FirstOrDefault(); if(singleHospital!=null) { //Safely use it. }
- 正则表达式匹配不以.ext(扩展名)结尾的字符串(1+个字符)
- 以不同的方式使用Razor视图引擎
- 在MVC控制器内打开websocket通道
- 如何在asp.net mvc 3项目中路由.aspx页面?
- 在ASP.NET MVC中调用Visual Studio 2013中的“全部中断”时,有没有办法隐藏“源不可用”选项卡?
- 具有服务层,业务层和entity framework的N层架构
- 如何在MVC 3中的Request.Form集合中访问未经validation的项目
- 如何使用ASP.Net Web Api 2进行部分响应
- WebApi,Autofac,System.Web.Http.Filters.ActionFilterAttribute每个请求的实例