개발/ASP.NET MVC

URL 컨트롤러/액션 규약을 벗어난 URL 을 지정하고 싶을때

hhtj 2017. 3. 15. 19:49

Let's Encrypt를 등록하려면 도메인/.well-known/acme-challenge/발급받은키 와 같은 url 접근이 필요한 경우가 있습니다.


기본적으로 사용하는 도메인/action/controller 에서 벗어나기때문에 당황할 수 있으나,

컨트롤러와 액션에 Route를 지정함으로써 이를 해결 할 수 있습니다.


간단하게 아래처럼 컨트롤러를 작성하시면 됩니다.


[RoutePrefix(".well-known")]
public class WellKnownController : Controller
{
    [Route("acme-challenge/{key}")]
    public ActionResult AcmeChallenge(string key)
    {
        if (key == "key 는 url주소의 마지막 부분을 의미합니다")
        {
            return Content("보여줄 인증 토큰", "text/plain", System.Text.Encoding.ASCII);
        }
        else
        {
            return Content("???", "text/plain", System.Text.Encoding.ASCII);
        }
    }
}