使用ASP.NET MVC3,如何让IIS不redirect302区分大小写的路由?
例如,我在IIS中创build一个名为“Admin”的应用程序文件夹。 javascript(有数百个文件,没有微小的变化,然后当新的代码生成或写入,我们必须手动强制执行所有路由?我认为这是矫枉过正),一些手写链接都指向/admin/ControllerName/或/admin/controllername/已经,所以当IIS看到这个时,它发出一个302到/Admin/ControllerName/ 。 显然(我testing确认)只是改变了案件阻止302。
每个图像,javascript包括等等,都会给IIS造成两击。
我怎样才能减lessstream量,只是让IIS继续前进,重新路由我的大小写不敏感,所以我们可以停止所有的愚蠢302。 或者这是不可能的,我应该在所有我们写的代码中永远强化每个潜在的URL? 或者我只是需要吮吸它,并与302的生活?
我猜你正在使用WS联邦? 或者至less使用WSFederationAuthenticationModule和/或SessionAuthenticationModule? 这两个模块都会执行redirect,以便在IIS无法validation身份或validation您是否有权获取请求的资源时,与IIS中的应用程序框架相匹配。 我看不出有什么办法阻止这样做,即使可能,也可能无法使用/admin实际访问资源。
原因是cookie中列出的path是区分大小写的,因为与WS-Federation有关的所有东西都是通过cookie完成的,所以套pipe必须匹配。 如果显示您已经通过身份validation的cookie是为/Admin创build的,然后尝试访问/admin ,则会认为您没有通过身份validation。
一种可能的解决方法是将pipe理目录设置为IIS中的单独应用程序,并将其configuration为不使用FAM或SAM。 然而,根据目录的名称,我猜这对你来说不是一个可行的select,因为你会失去对该目录的authentication。
嗯,我以为IIS 是不区分大小写的。
你确定在这里没有任何URL重写,你可以禁用?
干杯