Любая мидлваря это костыль, они для того и есть, что бы свою логику пихать в конвейер обработки запроса
Да, но есть еще переопределение готового функционала)
в данном случае Identity предоставляет много чего.
И я думаю, что восстановление IPrincipal тоже можно переопределить, и точно не спомощью мидлвари