我使用asp.net 4 c#和路由。
我有两条路线,你可以看到我传递给每条路线{ContentId}
和{TitleUrl}
的参数,请注意第一部分article/
和blog/
。
这里有一个正确结果的例子
mysite.com/article/150/my-special-article
mysite.com/blog/25/my-special-blogpost
如果用户尝试操纵更改article/
和blog/
部分的网址,则该路线会继续显示内容。
mysite.com/article/150/my-special-article // same page
mysite.com/somtheingelsehere/150/my-special-article // same page
我的网站目前继续显示内容,但我需要进行某种验证,并确保我所请求的网址在路线中指定,否则我会显示404页面。
任何想法怎么能解决它? (我希望我们能够正确解释,如果你需要更多说明,请告诉我)。谢谢!
routes.MapPageRoute("ArticleDetails", "article/{ContentId}/{TitleUrl}", "~/ContentDetails.aspx");
routes.MapPageRoute("BlogPostDetails", "blog/{ContentId}/{TitleUrl}", "~/ContentDetails.aspx");
答案 0 :(得分:0)
我的建议是使用不同的文章和博客文章,或者在ContentDetails.aspx中检查相应的正确网址。
if (Request.Url.PathAndQuery.StartsWith("/blog/") && postType = "blog") ...