URL Rewrite для размещенного приложения в IIS

Я разработал веб-приложение asp.net mvc core 3.0 и развернул его на сервере Windows. Я хотел бы скрыть имя контроллера в URL-адресе.

Example :

orginal url : www.example.com/test/authenticate/login

ожидаемый URL : www.example.com/test/login

Я не уверен в этом, достигнув этого кода или IIS.

Код маршрута startup.cs.

app.UseEndpoints(endpoints =>
{
       endpoints.MapControllerRoute(
           name: "default",
           pattern: "{controller=Home}/{action=Index}/{id?}");

});

person Hasanshali    schedule 16.02.2020    source источник
comment
docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/   -  person Lex Li    schedule 16.02.2020


Ответы (1)


Используйте атрибутивную маршрутизацию:

[Route("/")]
public class AuthenticateController : ControllerBase
{
    [HttpGet("login")]
    public IActionResult Get()
    {
        return Ok("Ok");
    }
}
person Ali Bayat    schedule 16.02.2020
comment
Он работает, если я не добавляю маршрут на контроллер. Не могли бы вы объяснить, что такое [Route(/)]? - person Hasanshali; 17.02.2020
comment
Действие AuthenticateController.Get() будет выполнено для URL-адресов (root+Action route) /login - person Ali Bayat; 17.02.2020