NancyFX:如何检查查询字符串/表单值是否已正确传递给我的处理程序?

2024-05-03

Nancy 通过以下方式将我的查询字符串和表单值传递给我的处理程序dynamic多变的。下面的示例显示了通过 Nancy 请求传递到 POST 处理程序的表单值,例如Request.Form.xxx.

Handler

Post["/"] = _ =>
    {
        var userId = (string) Request.Form.userid;
        if (userId.IsEmpty()) return HttpStatusCode.UnprocessableEntity;
        return HttpStatusCode.OK;
    };

你可以看到我正在投射userid到一个字符串,然后使用字符串扩展方法检查该值是否为 null 或空字符串(相当于string.IsNullOrEmpty()).

我更喜欢的是在动态类型上使用扩展方法,这样我就可以在做其他事情之前执行健全性检查。我想要这样的代码:

if(Request.Form.userid.IsEmpty()) return HttpStatusCode.UnprocessableEntity;

但是,您不能使用扩展方法dynamic类型。此外,您无法通过反射检查属性是否存在。欢迎来到德国航天中心。

Question

执行预检查以确保预期的查询/表单值已传递给我的 Nancy 处理程序,最简单、最安全的方法是什么?

Thanks


Request.Form.userid.HasValue

适用于所有 DynamicDictionary 成员,例如表单、查询和路由参数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NancyFX:如何检查查询字符串/表单值是否已正确传递给我的处理程序? 的相关文章

  • 让 CORS 与 Nancy 一起工作

    我正在尝试获取与 Nancy 和 CORS 合作的所有类型的请求 目前我在请求末尾添加了一个管道 pipelines AfterRequest AddItemToEndOfPipeline ctx gt ctx Response WithH
  • JScript.NET 可以用于编写 .NET 应用程序脚本吗?

    自从多发性硬化症似乎已在最新的 DLR 中终止了托管 JavaScript对于服务器端 ASP NET Futures 和客户端 Silverlight 是否有人成功使用未过时的 API 来允许使用 JScript NET 编写其应用程序对
  • 南希:如何捕获所有请求,无论动词或路径如何

    我想将 Nancy 与默认路由一起使用 因为它干净且运行良好 但是我想要一个选项来将所有传入请求记录到控制台 我正在使用 Nancy 的自托管模块 无论是否存在显式路由 简而言之 我希望能够捕获动词 传入请求 URI 任何发布的数据 如果是
  • 使用 Nancy TinyIoC 配置 JsonNetSerializer 和 JsonNetBodyDeserializer

    我对南希来说是个菜鸟 我一直使用它作为生成 REST API 的框架 我熟悉 Json NET 所以我一直在玩Nancy Serialization JsonNet包裹 我的目标 自定义行为 即更改设置 JsonNetSerializer
  • Docker Windows 容器 403 - 禁止:访问被拒绝

    我在我的应用程序中使用以下脚本创建了一个图像Dockerfile 但是当我使用容器的 IP 地址和端口 2000 浏览时 我收到 403 Forbidden 访问被拒绝 我使用的是 Windows 10 0 14393 Build 1439
  • 如何在南希显示我的 404 页面?

    我需要像这样在 Nancy 显示我的 404 错误页面 if ErrorCode 404 return View 404 html 怎么做 nemesv 的答案是正确的 但我只想添加一个使用 ViewRenderer 而不是 Generic
  • 在 Asp.Net 中使用 Ironpython 时 ExtensionAttribute 的引用不明确

    当启动使用程序集的 Asp Net 站点时 我收到以下错误 该程序集又利用 dlr 和 Iron Python 进行脚本编写 BC30560 ExtensionAttribute 在命名空间 System Runtime CompilerS
  • 为什么在 RavenDB 中存储 Nancy.DynamicDictionary 只保存属性名称而不保存属性值?

    我正在尝试保存 RavenDB build 960 通过其内置传递到 Nancy 模块的表单数据项的名称和值Request Form 如果我保存一个简单的实例dynamic对象 带有测试属性和值 然后一切正常 并且属性名称和值都被保存 但是
  • 如何使用 IronPython 引用独立的 C# 类库项目 (Visual Studio 2010)

    这个问题有点长 但我尝试向您提供我认为找到答案所必需的详细信息 我有一个 C WPF 解决方案 Net 4 其中包含一个主项目 用于构建一个 WPF Windows 应用程序 该应用程序依赖于同一 Visual Studio 2010 解决
  • 复制自托管 NancyFx 的 Razor 视图?

    我从一个简单的 MVC 站点开始 使用 NancyFx 和 Razor views cshtml and Nancy Hosting Aspnet 使用 IIS Express 现在我使用该项目将其改编为自托管服务Nancy Hosting
  • 是否可以将 .Net DLR 托管在“防白痴”沙箱中?

    我想以这样一种方式托管动态语言运行时 DLR 以便在其中运行任意脚本的用户无法关闭该进程 The DLR 托管规范 https web archive org web 20110814193317 http dlr codeplex com
  • 如何管理 WorldDomination 和 Nancy 的身份验证?

    我正在尝试让社交身份验证在 asp net 托管中工作Nancy http www nuget org packages Nancy 网络应用程序使用Nancy 的 WorldDomination SimpleAuthentication
  • 如何在 NancyFX 中写入流输出?

    我正在使用 Nancy 编写一个简单的 Web 应用程序 至少一个请求会导致长度未知的流 因此我无法提供Content Length 我想用Transfer Encoding chunked 或 在这种情况下同样可以接受 Connectio
  • 使用 NancyFX 进行模型验证

    我真的很习惯 ASP NET MVC 方法 用相应的属性注释模型 MVC 验证它并更新 ModelState Errors ModelState 在视图上可用 因此可以向用户显示错误 我还没有找到相关信息wiki https github
  • 如何在 DLR 中实现三元运算符

    我正在使用 DLR 在 C 中实现语言解释器 但在使用三元运算符时遇到了一些问题 此时 我已经实现了基本的函数声明 调用 如下所示 F x gt x 1 F 1 returns 2 我没有遇到过函数体是表达式序列的问题 总是返回最后一个表达
  • 每条路由的 NancyFx 身份验证

    从我在源代码中看到的 RequiresAuthentication 对整个模块进行身份验证检查 有什么办法可以按路线执行此操作吗 我有同样的问题 然而事实证明RequiresAuthentication在模块级别和路由级别都有效 为了演示
  • Expression.Lambda 和运行时查询生成,嵌套属性“Where”示例

    我在有关为Where查询构建表达式树的问题上找到了非常好的答案 Expression Lambda 和运行时的查询生成 最简单的 Where 示例 https stackoverflow com questions 8315819 expr
  • C# 3.5 DLR 表达式.动态问题

    我继承了一种小型脚本语言 并尝试将其移植到 DLR 以便更容易管理 到目前为止 一切都相当简单 我在尝试动态调用变量的成员时遇到了问题 当前的语言在 NET 上运行 并使用解析循环和反射来执行此操作 但我希望摆脱这种情况 这是脚本语言的示例
  • 使用 NancyFX 时出现 Razor 编译错误

    我正在使用 Nancyfx 和 Visual Studio 2012 中的 Razor 视图引擎在 C 中创建一个黑杰克程序 Visual studios Intelisense 可以工作 但我收到这些 Razor 编译错误 我尝试在 ap
  • 了解如何为 .NET 框架创建编译器/解释器的资源

    我想了解更多如何为 NET 框架创建语言 我想我想构建一种 DLR 语言 我很难找到好的资源 我发现MSDN 上的一篇血统文章 http msdn microsoft com en us magazine cc136756 aspx那是一年

随机推荐

  • Python、cPickle、酸洗 lambda 函数

    我必须像这样腌制一组对象 import cPickle as pickle from numpy import sin cos array tmp lambda x sin x cos x test array tmp tmp tmp tm
  • Proguard错误android,无法访问jar文件

    这是我第一次使用 progurad 在导出签名的 apk 时出现以下错误 错误 无法访问 jarfile lib proguard jar 我取消注释了 proguard config 行 To enable ProGuard to shr
  • Qml 中的 FileDialog 在发布中不起作用

    我正在与以下项目合作Qt Quick Control 2 当我尝试在调试模式下运行软件时 FileDialog qml 可以完美打开 但是当我将其部署为发布模式时 它无法工作 这是我的代码 import QtQuick 2 4 import
  • 在 PHP 中查找数字的倍数

    我想在 PHP 中找到一个数字的所有倍数 我正在使用这样的东西 if count 20 计算出如果 count不等于20 但我还需要这个脚本来检查是否 count不等于 20 40 60 80 100 120 140 160 等 有任何想法
  • 设备收到 GCM Android 通知但未显示

    尽管通知已在应用程序本身中注册 但我的 Ionic Android 应用程序的 GCM Cloud 消息通知未出现在我的设备的主屏幕中 我正在使用 npm 模块node gcm https www npmjs com package nod
  • “分页文件太小,无法完成此操作”尝试训练 YOLOv5 对象检测模型时出错

    我有大约 50000 个图像和注释文件用于训练 YOLOv5 对象检测模型 我在另一台计算机上仅使用 CPU 训练模型没有问题 但需要太长时间 因此我需要 GPU 训练 我的问题是 当我尝试使用 GPU 进行训练时 我不断收到此错误 OSE
  • 如何将 list 对象附加到另一个对象

    在 C 中 我有两个list
  • ConvertTo-JSON 具有单个项目的数组

    我正在尝试创建一个 JSON 序列化数组 当该数组仅包含一项时 我得到一个字符串 而不是字符串数组 JSON 格式 多个项目 按预期工作 PS C gt one two ConvertTo JSON one two 单个项目数组 不符合预期
  • 将 CryptoStream 解密为 MemoryStream

    我编写了一个过程 其中文件被加密并上传到 Azure 然后必须解密下载过程 这会失败并出现 填充无效且无法删除 错误 或 要解密的数据长度为无效的 错误 我在网上尝试了很多解决方案 包括C 使用 RijndaelManaged 和 Cryp
  • 批量删除如何工作?

    我尝试使用bulkDelete让我的机器人删除其消息 但我收到此错误 node 5724 UnhandledPromiseRejectionWarning Unhandled promise rejection rejection id 1
  • 无法使用 MinGW C++ 在 NetBeans IDE 7.3 中编译“Hello World”

    我正在尝试制作一个简单的 Hello World 在 NetBeans IDE 7 3 中使用 MinGW 作为我的 C 编译器来编写程序 我遇到了构建失败的情况 但我不知道为什么 这是我的编译器设置 Family MinGW 基本目录 C
  • JavaScript 排序列表

    Javascript 或 jQuery 中有排序列表吗 我有一个巨大的列表 随着时间的推移 插入操作很少 每次添加单个项目时 我无法为整个列表调用 object sort 我需要插入 o log n 不 没有 你拥有的只是Array sor
  • 将多个参数传递给 UNIX shell 脚本

    我有以下 bash shell 脚本 理想情况下我会用它来按名称杀死多个进程 bin bash kill ps A grep awk print 1 然而 虽然此脚本有效 但传递了一个参数 端镀铬 脚本名称为end 如果传递多个参数 则它不
  • 以 ASCII 字符串形式获取 MemoryStream 内容的快速方法

    我在 MemoryStream 中有一个 JSON 字符串 我使用以下代码将其作为 ASCII 字符串获取 MemoryStream memstream new MemoryStream Write a JSON string to mem
  • 更改 IIS 主目录路径会触发重新启动吗?

    在 IIS 特别是 6 0 中 在主目录选项卡下 如果我更改本地路径 是否会导致 IIS 重新启动或应用程序池回收 相关的 是否有一个参考概述了 IIS 元数据库的哪些更改将触发重新启动或应用程序池回收 我还没找到这个 更改主目录路径中网站
  • 为什么 Swift UITableViewController 模板在 tableView cellForRowAtIndexPath 方法中使用可选参数?

    如果您创建新的 UITableViewController 类 您将看到重写的注释方法 override func tableView tableView UITableView cellForRowAtIndexPath indexPat
  • EWS 消息跟踪报告

    我一直在研究如何使用 EWS 从交换中获取消息跟踪报告 但似乎无法查明任何内容 我打算构建一个抓取日志文件的应用程序 但如果我可以通过 EWS 来完成它 那对我正在做的事情会更好 有任何想法吗 我终于能够为我的问题创建一个解决方案 我在 C
  • 跨线反映点的算法

    给定一个点 x1 y1 和一条直线的方程 y mx c 我需要一些伪代码来确定反映直线上第一个点的点 x2 y2 花了大约一个小时试图弄清楚但没有运气 请参阅此处的可视化 http www analyzemath com Geometry
  • Emacs:调试Python的方法

    我把这个贴在程序员 stackexchange com https softwareengineering stackexchange com questions 29844 emacs methods for debugging pyth
  • NancyFX:如何检查查询字符串/表单值是否已正确传递给我的处理程序?

    Nancy 通过以下方式将我的查询字符串和表单值传递给我的处理程序dynamic多变的 下面的示例显示了通过 Nancy 请求传递到 POST 处理程序的表单值 例如Request Form xxx Handler Post gt var