Programing

ASP.NET Core MVC에서 URL 리퍼러를 얻으려면 어떻게하나요?

lottogame 2020. 11. 11. 07:53
반응형

ASP.NET Core MVC에서 URL 리퍼러를 얻으려면 어떻게하나요?


ASP.NET MVC 웹 양식을 ASP.NET Core MVC로 마이그레이션하려고합니다. 현재 Request.UrlReferrer수업에 문제가 있습니다.

원래 줄은 다음과 같습니다.

    [HttpPost]
    public async Task<ActionResult> ContactUsFormSubmit(ContactUs request)
    {
        var siteUrl = Request.UrlReferrer.ToString().ToLower();
        ....
    }

그러나 ASP.NET Core에서는 UrlReferrer를 사용할 수 없습니다. 다음을 찾았습니다.

    Request.Headers["Referer"]

String 대신 StringValues를 반환합니다. 나는 이것을 사용 해야하는지 또는이 상황에 대한 다른 해결책이 있는지 확실하지 않습니다. Request.ServerVariables사용할 수 없거나 네임 스페이스가 없을 수도 있습니다. 내 네임 스페이스는 다음과 같습니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

누군가 나를 올바른 방향으로 인도 할 수 있다면 정말 감사하겠습니다.


거의 완료되었습니다. StringValues클래스는 ASP.NET이 프레임 워크에서 문자열을 효율적으로 표현하는 데 사용하는 유형일뿐입니다. 특히 HttpContext개체에서. ToString()이를 호출 하여 문자열로 변환 할 수 있습니다 .

string referer = Request.Headers["Referer"].ToString();

asp.net 코어 2 사용 기준 GetTypedHeaders

RequestHeaders header = request.GetTypedHeaders();
Uri uriReferer = header.Referer;

using Microsoft.AspNetCore.Server.Kestrel.Internal.Http;

var referer = ((FrameRequestHeaders)Request.Headers).HeaderReferer.FirstOrDefault();

마법의 끈없이 받아 들여진 대답과 거의 동일


URL 리퍼러를 얻는 방법은 다음과 같습니다.

@{
string referer = Context.Request.Headers["Referer"].ToString();
Uri baseUri = new Uri(referer);}


<form asp-action="Login" asp-route-returnUrl="@baseUri.AbsolutePath">

참고 URL : https://stackoverflow.com/questions/38772394/how-can-i-get-url-referrer-in-asp-net-core-mvc

반응형