- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前在我的网站上使用 global.asax 进行页面路由。
除了我有以下代码:
//Home:
routes.MapPageRoute("intro", String.Empty, "~/Default.aspx");
routes.MapPageRoute("home", "home", "~/Default.aspx");
//EHBO:
routes.MapPageRoute("ehbo-overzicht", "ehbo/overzicht", "~/ehbo/overview.aspx");
routes.MapPageRoute("ehbo-input", "ehbo/input", "~/ehbo/input.aspx");
routes.MapPageRoute("ehbo-input-edit", "ehbo/inputedit/{itemid}", "~/ehbo/inputedit.aspx");
//Links:
routes.MapPageRoute("links", "links/links", "~/links/overview.aspx");
但是对于我想使用的链接:
//Links:
routes.MapPageRoute("links", "links", "~/links/overview.aspx");
但这对我不起作用。我收到以下错误:HTTP-fout 403.14 - 禁止
我在我的 map ehbo 上使用身份验证,但没有别的,web.config:
<!-- Authentication -->
<authentication mode="Forms">
<forms loginUrl="~/Login" name=".ASPXFORMSAUTH" defaultUrl="home">
</forms>
</authentication>
<authorization>
<allow users="*"/>
<deny users="?" />
</authorization>
<location path="ehbo">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
但我不认为这是问题所在。因为如果我不使用身份验证,我会遇到同样的错误。
有人知道答案吗?
最佳答案
问题是由您尝试路由的路径 /links
引起的,它也是应用程序根目录中的物理文件夹,在这种情况下,IIS 会选择使用静态文件处理程序,而不是让路由处理程序参与其中.在这种情况下,对 /links
的请求实际上是对/links 文件夹的内容请求列表,默认情况下通常会受到限制,并且会触发您看到的 403。而且我假设即使它没有被拒绝,也不会是您期望的行为。
解决此问题的一种蛮力方法是将其添加到您的 web.confg 中:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
这将强制在所有路径上运行所有模块,这通常会导致一些副作用,并且肯定会对站点范围内的性能产生一定程度的影响。
处理此类问题的更具体方法是在特定路径上指定处理程序,在您的情况下,您可以尝试将其添加到您的 web.config system.webServer -> handlers:
<handlers>
<!--all other removes-->
<add name="NameItProperly"
path="/links"
verb="GET,POST"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
<!--all other adds-->
</handlers>
这只会强制路由处理程序跳入此特定路径 /links
。
关于c# - MapPageRoute routeUrl 根据特定请求点击 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36082077/
我有一种情况需要在 ASP.NET MVC 站点的 javascript 中跳转 url。 我们知道,我们可以在xx.cshtml中用@Url.RouteUrl("RouteName", new {
我使用此扩展创建一个 RouteUrl,并附加了当前查询字符串。这适用于两次或多次不具有相同键的查询字符串。 public static string CurrentQueryStringRouteU
这是我的mvc3应用程序的路由配置 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default",
我使用 Asp.netCore 并且以下代码是我需要通过 XUnit 测试的操作的一部分。问题是 URL当我测试 Action 方法时它是空的。我如何模拟 URL 及其函数 RoutUrl 以返回我期
我目前在我的网站上使用 global.asax 进行页面路由。 除了我有以下代码: //Home: routes.MapPageRoute("intro", String.Empty, "~/Defa
我在生产服务器中的应用程序有问题,因为网站使用 url 路由“http://productionserver.com/myAppName/controllerName/actionName”运行 我需
我有以下代码: @Url.RouteUrl("NewMessage", new { parentThreadId = Model.thread.id, cacheBustParam = current
我正在使用 ASP.NET 4(Web 表单,而不是 MVC)中的新路由功能。现在我有一个绑定(bind)到数据源的 asp:ListView。其中一个属性是 ClientID我想用它从 ListVi
我尝试在 JavaScript 中将 URLHelp.RouteUrl 与动态字符串一起使用。我想要这样 - function MyFun(action, param){ var strPass
我正在扩展 Html.HtmlHelper 以根据我所在的页面呈现面包屑: public static HtmlString RenderBreadCrumb(this HtmlHelper help
我正在尝试获取完整的 URL,但是 RouteUrl正在返回空。 在 View 中,我是这样调用的: alert('@Url.RouteUrl("Api", new { controller = "P
我需要根据参数创建一个路由 URL 作为 JSON 返回值的一部分。 与 Url.RouteUrl 等效但在 Controller 代码内部使用的是什么,因此,我可以在 Json 结果中返回一个包含
我正在为路线构建 UrlHelper如best practices 问题是返回值总是为null调试时发现 Url.RouteUrl("x") 返回 null Url.RouteCollection["
我正在使用 Asp.Net MVC 2 - RC w/Areas。 由于在两个不同的区域有相同的 Controller 名称,我收到了一个模糊的 Controller 名称异常。 我已阅读 Phil
(我使用的是 ASP.NET MVC 2。) 使用 Url.RouteUrl(object) 时如何排除某些属性进入查询字符串? 具体来说,在传递给我的 View 的模型对象中,我有一个字符串数组(技
作为旁注,我了解整个 ambiguous controller names问题并使用命名空间来使我的路线正常工作,所以我认为这不是问题。 到目前为止,我有我的项目级 Controller ,然后是具有
假设您有一个操作方法来在购物车中显示产品 // ProductsController.cs public ActionMethod Index(string gender) { //
生成链接时,代码在 Controller 的 Indexx 中。所以链接是以这种形式生成的 Wk/Index/XX/YYYY 网址代码是 url = urlHelper.RouteUrl("Wk",
我有路线 // Sample URL: /Fixtures/Team/id routes.MapRoute( "Fixtures-by-TeamID", "Fixtures/Tea
我有以下 Controller ,它允许我使用以/api/v1/report/123.csv 结尾的 URL 通过 CSV 下载文件: [RoutePrefix("api/v{version:int?
我是一名优秀的程序员,十分优秀!