asp.Net   发布时间:2022-04-05  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在ASP.NET/IIS的URL中使用冒号(:)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在ASP.NET MVC中实现一个自定义控制器,并且真的希望能够在URL中使用冒号,以便我可以识别类/列名称及其值,如下所示:

http://example.com/user:chaiguy

…但显然ASP.NET或IIS不允许在URL中的冒号。我做了一些挖掘,显然它被认为是一个安全问题,但是我正在使用MVC并手动处理所有url路径(只是将它们视为字符串),而不是将它们与文件系统相关联,所以我很确定不适用。

我也听到一些关于实现一个自定义http处理程序或某事的讨论。

任何想法或想法将不胜感激。

我碰巧喜欢网址,WCF对我来说太复杂了。我希望它与url兼容,就像REST一样,但不仅仅是导航层次结构,还是做了很好的布局。与/ users / chaiguy有关的问题是解释层次结构是没有的:在我的系统中,“user”是一个类,它不是一个文件夹。用户:chaiguy是指具有“chaiguy”值的用户类的实例,它是具有子实体的潜力的单个实体。所以例如:

/用户:chaiguy /名称

…我想显示该实体的名称。如果我用你的方法做到这一点,它将如下所示:

/用户/ chaiguy /名称

问题是你如何知道课堂是什么,有什么价值?它可以解释为

/用户/ chaiguy:名称

我的系统中,这没有意义。看看我在做什么为了给出一个稍微复杂的例子,假设我们要从多个实例中选择一个用户实体的子节点。所以用户可能有几个电子邮件地址。要选择一个,我们可以使用:

/user:chaiguy/email:me@here.com/

所以它实际上是递归的。它不是一个文件路径,它更像是一个XPath(或者可能类似于jQuery,基于我知道的几点)。也就是说,它比动态评估的查询选择多于硬连线的文件路径。它在服务器上进行评估。

不要错,我不是在这里建立一个典型的网站,甚至是网络服务。

解决方法

更改web.config中httpRuntime的requestPathInvalidCharacters属性:
<httpRuntime maxrequestLength="20480" requestValidationMode="2.0" requestPathInvalidCharacters="" maxQueryStringLength="20480" />

而ASP.NET应该不再阻止请求路径中的冒号。

大佬总结

以上是大佬教程为你收集整理的在ASP.NET/IIS的URL中使用冒号(:)全部内容,希望文章能够帮你解决在ASP.NET/IIS的URL中使用冒号(:)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。