Мы хотели бы написать часть промежуточного программного обеспечения OWIN, которое будет смотреть на текущий запрос и посмотреть, соответствует ли оно любым сопоставленным маршрутам (мы используем web.api, поэтому мы регистрируем маршруты с помощью метода httpRouteCollection.MapHttpRoute
.OWIN Middleware: найти, если запрос имеет согласованный маршрут
Если текущий запрос не соответствует ни одному известных настроенных маршрутов мы хотели бы, чтобы отклонить его с сообщением 404.
можно ли определить из контекста Owin ли текущие матчи запроса один из определенных маршрутов?
Спасибо @MichaelDotKnox. Поэтому из того, что вы говорите, я подразумеваю, что промежуточное ПО полностью не зависит от архитектуры ASP.NET MVC. Он не знает, в каком контексте он работает. Поэтому, если я хочу иметь только приемлемые маршруты и все остальное, направленное куда-то еще, я бы либо использовал пользовательскую страницу ошибок в веб-конфигурации, либо выполнил маршрут «поймать все» в таблице маршрутизации и направил ее на действие контроллера по моему выбору , Верный? –
@AranMulholland Исправить. OWIN - это просто конвейер для ASP.net, и промежуточное программное обеспечение ничего не знает о том, что находится в конце конвейера. Также ASP.net ничего не знает о том, какое промежуточное ПО может работать до или после него. Это делает OWIN таким классным и мощным. Он полностью не зависит от приложения и сервера. – MichaelDotKnox
У вас есть Owin Context, хотя это зависит от того, на какой серверной инфраструктуре вы работаете? Кажется, у него есть информация, относящаяся к asp.net, когда это ваша инфраструктура сервера. У меня будет другой взгляд, но я, кажется, помню вещи, которые выглядели так, как будто это связано с asp.net. –