问题标签 [urlhelper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
285 浏览

asp.net-mvc - 你如何保护 UrlHelper.Action 免受 XSS 攻击?

我们有一个 ASP.NET MVC 站点,用于UrlHelper.Action生成发送到客户端的 URL。我们已经使用 Veracode 安全平台扫描了我们的应用程序。它发现了一个问题:

网页中与脚本相关的 HTML 标签的不当中和(基本 XSS)

受污染的数据源自之前对 system_web_mvc_dll.System.Web.Mvc.UrlHelper.Action 的调用。

我们的 URL 不使用可能来自客户端并被污染的模型状态值。他们都很直截了当。

UrlHelper 是否存在任何漏洞或确保其生成的 URL 不允许 XSS 注入的最佳实践?

0 投票
1 回答
1009 浏览

asp.net - ASP.NET Core RC1 MVC 6 - 如何从中间件访问 UrlHelper 并创建 Url 到 Action

我正在尝试使用中间件重定向 301 旧 URL。

如您所见,我使用的是 MapWhen 方法,这限制了我在 RedirectFromPost 方法中实例化我的 IUrlHelper 实例。ServiceProvider 给了我一个空实例,没有正确使用 IUrlHelper.Action() 所需的 ActionContext。

有没有人遇到过类似的挑战并对我有见识?

0 投票
2 回答
186 浏览

asp.net-mvc - urlHelper 构建错误的路径.. 这有什么风险?

我有一个路由规则:

在我的代码中:

如果有param5、param6等,那么

url =/hottours/?countryTo=tailand&resort=bangkok¶m1=price_from_50000,

但如果我删除 param5、param6 和其他,那么一切正常:

网址 =/hottours/tailand/曼谷/price_from_50000

为什么如果段数小于 7,一切正常?我需要 9 个段,但 urlHelper 在这种情况下会构建错误的 url。

0 投票
2 回答
4417 浏览

c# - UrlHelper.Action 是否等同于 UrlHelper.RouteUrl?

由于性能优势,我想在我的代码中用UrlHelper.RouteUrl替换所有UrlHelper.Action实例。根据文档,这两种方法都会生成一个完全限定的 URL,我想确认它们将返回完全相同的URL。


例子:

假设中的路线RouteConfig具有独特的controller,action组合:

鉴于以下路线RouteConfig

可以安全地假设

完全等同于

0 投票
1 回答
1270 浏览

c# - UrlHelper 模拟不起作用

我正在尝试编写一个通过但我的测试调用的方法调用另一个使用UrlHelper该类生成 URL 的方法的单元测试。调用结果urlHelper.Action不断返回null

我已经尝试模拟(使用 Moq)我认为该控制器需要能够使其正常工作的所有组件,但我仍然得到null.

单元测试类

控制器动作调用的控制器方法

0 投票
1 回答
973 浏览

asp.net-core - ASP.NET Core 在启动时解析 url?

我希望能够注册考虑到资源的实际 url 的某些 url。具体来说:我的 Web API 文档的 Swagger 端点。

在我的开发环境中,我将在http://localhost:5000上托管 Web PI ,在这种情况下,Swagger 想在此处与其端点对话:

http://localhost:5000/swagger/v1/swagger.json

在生产或登台环境中,Web API 将作为 IIS 中的 Web 应用程序托管,类似这样https://test.contoso.com/TheGreatestWebAPI,swagger 会想谈这个:

https://test.contoso.com/TheGreatestWebAPI/swagger/v1/swagger.json

...因此后者被注释掉的端点注册。

我想做的是使用这样的东西:

任何使用过 ASP.NET Web 表单的人都应该熟悉这一点Page.ResolveUrl(),并且据我所知,相同的功能应该可以通过UrlHelper.Content(). 但是,该函数需要UrlHelper类的实例,而相关的构造函数需要ActionContext实例。

我不知道UrlHelper在这种情况下如何正确实例化(UseSwaggerUI()in Startup.Configure())。

-S

0 投票
2 回答
9260 浏览

c# - ASP.Net Core 2.0:无需请求即可创建 UrlHelper

我正在为后台工作人员创建一个 UrlHelper 以创建回调 url,这意味着它不是正常请求的一部分,我可以通过 DI 请求它。

在 ASP.Net 5 中,我可以只创建一个 HttpRequest 并为其提供与构建应用程序相同的 HttpConfiguration,但在 ASP.Net Core 2.0 中,UrlHelper 依赖于完整的 ActionContext,这有点难以制作。

我有一个可以工作的原型,但它使用了令人讨厌的 hack 将路由数据从应用程序启动过程中偷运出来。有一个更好的方法吗?

0 投票
0 回答
29 浏览

c# - 移动到另一个 Team Foundatio 服务器后,我得到 System.Web.HttpException: 'Response is not available in this context。'

该代码适用于我们的实时和开发网站,但是当我尝试针对本地或开发数据库在本地运行时,我收到错误:System.Web.HttpException: 'Response is not available in this context.'

我试过运行一个我知道可以工作的过去版本。这只是在我们的代码移动到新的 Team Foundation Server 时才开始发生的。我开始怀疑这是否是 Visual Studio 中的设置。我使用了一个 Watch 窗口并验证了为区域、动作和控制器传递的正确信息。不为空的 URL 可以正常工作。

这是代码示例:

这会导致错误:System.Web.HttpException: 'Response is not available in this context。'

我需要关于从哪里开始解决这个问题的帮助。

0 投票
1 回答
68 浏览

asp.net-core - 强制在 ASP.NET Core 中具有查询参数的所有 Url

有没有办法强制使用 构建的所有 UrlUrlHelper包含特定参数?这个想法是一旦我设置了一个特定的参数以始终在链接上跟随它。

我使用以下代码生成大部分网址:Url.RouteUrl("MyRoute", new {myparam = 1})

我想做的事情:我去https://example.com?myparam=1 我希望页面上生成的所有链接都包含该myparam=1参数。如果未指定参数,则 url 不应包含它。

我正在考虑扩展UrlHelper,覆盖RouteUrl方法(我只使用这个),扩展参数并将此类注册为服务,但由于参数作为匿名类传递似乎很复杂......

有没有更好的方法来达到这种行为?

0 投票
0 回答
198 浏览

razor - 添加 aspnet-api-versioning 可防止 UrlHelper 在 Razor 页面请求中生成控制器 API 路由

我可以创建一个文件-> 新的 aspnetcore API 项目并使用它IUrlHelper按名称生成路由,而不会出现任何问题。

当响应被发回时,我正确地拥有了我创建的路由:

然后,我可以使用 Visual Studio Scaffolding 创建 Razor 页面并继续生成相同的路线,而不会在我的 Razor 页面中出现任何问题:

模型

这使得路线没有问题。

如果我添加aspnet-api-versioningnuget 包并配置它的服务:

我的 API 控制器继续使用以下修改。任何发往此控制器的请求都会正确生成路由。

但是,当我们尝试从 Razor Pages 请求中生成路由时,Razor Pages 停止工作。该RouteUrl方法现在返回 null。我已经尝试更新提供给该RouteUrl方法的路线数据,以便我通过硬编码版本(用于测试)并且它也不起作用。

是否需要在 api 版本控制包上进行任何配置以支持页面?我们有剃须刀页面,我们想要生成 API 路由以在页面中呈现,但它似乎不起作用。