Я только изучаю ASP.NET MVC, и недавно я обнаружил атрибут [RequireHttps] для автоматического перенаправления запроса GET на использование SSL, например ...
[RequireHttps] //apply to all actions in controller
public class SomeController
{
[RequireHttps] //apply to this action only
public ActionResult SomeAction()
{
...
}
}
При использовании IIS Express в качестве сервера разработки это успешно перенаправляет запрос с http://localhost:55945/...
на https://localhost/...
.
Однако в моей системе разработки мой проект использует HTTPS на порту 44300 (это было автоматически настроено Visual Studio 2010), и я пока не нашел способа сказать MVC использовать этот номер порта в перенаправлении, чтобы вместо этого он идет к необходимому значению https://localhost:43300/...
.
Я действительно ожидал, что это будет автоматически, учитывая, что Visual Studio автоматически установил номер порта SSL, и, насколько я могу судить, это должно повлиять на всех разработчиков, использующих атрибут [RequireHttps] в MVC3. В своем поиске решения я видел несколько неоднозначных «обходных» решений, но ничего, что, казалось бы, не было «правильным способом» его исправить.
Таким образом, поступая «правильно», что я изменяю (либо в исходном коде, либо в конфигурации моего проекта), чтобы указать атрибуту [RequireHttps] в MVC3 использовать порт HTTPS, для которого настроен мой проект используя
Или, в качестве альтернативы, есть какой-то другой, совершенно иной и лучший «правильный» способ настройки поддержки SSL в проекте MVC3, у которого нет этой проблемы?