我需要编写一些代码来在项目数据库中查找 ID。
用户耦合到一个项目,并且所有项目都与其他对象(例如会话)有很多连接。
现在,我需要在运行任何操作之前检查尝试访问会话的用户是否连接到与会话连接的同一项目。
为此,我想在操作上使用[属性]。MVC:创建一个带有参数的自定义 [AuthorizeAttribute]? https://stackoverflow.com/questions/4681486/mvc-creating-a-custom-authorizeattribute-which-takes-parameters
这个问题和答案让我开始了,但是我在使用控制器的构造函数来获取我的Project ID
目标是我可以在每个构造函数中编写一些代码,根据项目的所有对象控制器,找到项目 ID,并使其可访问(公共),所以我的[customauthorize]
将有权访问该项目ID以检查用户是否有权访问。
我的问题:
public class SessionController : Controller {
NASDataContext _db = new NASDataContext();
public SessionController() {
var test = RouteData;
var ses = _db.Sessies.First(q=>q.Ses_ID==1);
}
如何访问我的路线数据?RouteData
一片空白,HttpContext
为空并且Request
一片空白。
我需要 url 中的 ID,该 ID 位于路由数据中...
我建议将此检查放在模型中而不是控制器中。在控制器中,您需要装饰需要此检查的每个操作,请记住,这将在您应用它的每个操作上执行代码,因此您可能不想一开始就在控制器级别应用它。更简单的方法是在模型中实施一次检查,然后您就无需在控制器中“担心”访问权限。这将使此访问权限检查的测试成为可能,因为您只能在一处进行测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)