从控制器构造函数中的 URL 获取参数

2024-03-01

我需要编写一些代码来在项目数据库中查找 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(使用前将#替换为@)

从控制器构造函数中的 URL 获取参数 的相关文章

随机推荐

  • 无法调用类型缺少调用签名的表达式

    我有苹果和梨 两者都有isDecayed属性 interface Apple color string isDecayed boolean interface Pear weight number isDecayed boolean 这两种
  • 如何在闪亮的仪表板侧边栏中的 menuSubItem 下包含输入小部件?

    如何在闪亮应用程序的侧边栏中的 menuSubItem 下包含一个控件小部件 这是我的试验 library shiny library shinyWidgets library shinydashboard ui lt dashboardP
  • 使用 Ninject 将存储库注入自定义会员资格提供程序

    我正在尝试使用 MVC 3 中的 ninject 将存储库注入到自定义成员资格提供程序中 在 MembershipProvider 中我尝试了以下操作 Inject public ICustomerRepository customerRe
  • 如何更新外键

    我有 2 张桌子 第一个表的设计如下 Table 1 id Doc line sheet pk Autonumber DocNo text lineNo text Sheet No text 字段组合 DocNo lineNo Sheet
  • 如何禁用 Internet Explorer 的同源策略

    Chrome允许我们禁用同源策略 因此我们可以测试跨源请求 我想知道是否有可能在 IE 中做同样的事情 是的 您可以在 Internet 选项 中进行设置 转到 安全 选项卡 对于当前区域 单击 自定义级别 按钮 在下一个窗口中 向下滚动大
  • 更改底层依赖项后 SQL Server 视图显示过时/错误的数据

    我们有一个视图 称为 X 它是由另外 2 个视图 称为 Y 和 Z 调用的基本视图 今天我们对视图 X 进行了更改 之后视图 Y 和 Z 开始带回不正确的数据 当我们在 Management Studio 中运行时SELECT FROM Y
  • Javascript - 检索对象属性路径[重复]

    这个问题在这里已经有答案了 我有以下对象 var obj obj foo obj foo bar I want this 给定 路径 foo bar 作为字符串 我如何检索obj foo bar or obj foo bar 这是一个方法
  • 应用程序首次启动时调用 didReceiveRemoteNotification

    我已经实现了 didReceiveRemoteNotification 方法 它工作并显示一个视图控制器以及传递的通知数据 仅当应用程序已在前台或在后台运行时 此功能才有效 但是 当应用程序未运行并且用户单击通知时 应用程序会启动 但看起来
  • 进程监控 CreateProcessNotifyRoutineEx

    我正在开发一个用于监视进程创建的驱动程序 我编写了一个简单的代码来完成它 我用PsSetCreateProcessNotifyRoutineEx 但这行不通 我完全遵循微软的帮助在这个链接上 http msdn microsoft com
  • Boost Beast 在关闭后重新连接 websocket 连接

    我正在使用 boost beast 创建 websocket 连接 到目前为止它似乎工作正常 但我无法弄清楚断开连接后是否应该替换 websocket stream 变量 即我有一个变量 boost beast websocket stre
  • 有没有办法在 C 中使用具有常量索引的常量数组作为 switch case 标签?

    我有一些常量值和数组定义它们的标签和哈希码 例如 define LABEL A 0 or const int LABEL A 0 define LABEL B 1 define LABEL C 2 define LABEL D 3 cons
  • 获取 Google 表单脚本生成的电子邮件以将数据传输到响应表中

    我目前正在尝试设置审批工作流程 对于这些事情 我还相当初级 但到目前为止 在示例的帮助下 它已经达到了可观的水平 可以满足我们的需求 我正在使用来自的模板 示例使用 Google 脚本和表单进行电子邮件批准 https sites goog
  • 无法删除 S3 存储桶 - 错误未找到数据

    我无法摆脱 S3 中的五个桶 AWS 控制台中的每个屏幕都会显示 未找到错误数据 即概述 属性 权限 管理 访问点 我无法设置生命周期删除对象的规则 但存储桶中从未有过任何内容 而且版本控制也从未启用 我也尝试过在我的终端中强制它 aws
  • Qt 4.8 beta 和 Mac OSX Lion,Phonon 错误

    成功安装 mac OS 10 7 后 我尝试编译我的 qt 4 7 项目 我收到了很多 不支持的 mac os x 版本 的警告 因此我决定使用 Qt 4 8 beta 现在所有警告都消失了 但是 我现在使用 Phonon 时遇到链接器问题
  • 为什么window.width小于媒体查询中设置的视口宽度

    我很困惑 仍然不知道如何用合适的语言解释这一点 到目前为止 我已经使用断点并设置了媒体查询 使用的断点变量如下所示 menustatictofixed min width 900px breakpoint to ems 设置为 true 我
  • 错误:“...”未命名类型

    我有一个工作项目 重新安排一些代码后 我尝试重新编译我的项目 然后奇怪的事情开始发生 看一下编译器输出的摘录 我正在使用 MinGW G 从 Windows 上的 Eclipse 进行编译 Build of configuration De
  • 术语“Scaffold-DbContext”未被识别为 cmdlet 的名称

    我有一个包含两个项目的解决方案 一个是主项目 第二个是使用 EF Core 10 0 RC2 的项目 在第二个项目中 我使用这三个命令来安装 EF Core 并运行此 nuget 命令来安装它 Install Package Microso
  • 查找列表列表中项目的部分匹配

    我有这样的列表 l 08 00 09 00 60 False 1 0 09 00 10 00 60 False 0 3 12 00 13 00 60 False 2 0 我想检查是否有列表l有一个元素但我不知道最后一个元素的值float 我
  • 如何在 R 中使用 readHTMLTable 读取注释掉的 HTML 表

    过去 我已经能够使用 R 中的 readHTMLTable 来获取一些足球统计数据 当今年再次尝试这样做时 表格没有显示 即使它们在网页上可见 这是一个例子 http www pro football reference com boxsc
  • 从控制器构造函数中的 URL 获取参数

    我需要编写一些代码来在项目数据库中查找 ID 用户耦合到一个项目 并且所有项目都与其他对象 例如会话 有很多连接 现在 我需要在运行任何操作之前检查尝试访问会话的用户是否连接到与会话连接的同一项目 为此 我想在操作上使用 属性 MVC 创建