Program Tip

Asp.net Core에서 사용자 브라우저 이름 (user-agent)을 얻는 방법은 무엇입니까?

programtip 2020. 11. 4. 08:15
반응형

Asp.net Core에서 사용자 브라우저 이름 (user-agent)을 얻는 방법은 무엇입니까?


MVC 6, asp.net 5에서 클라이언트가 사용하는 브라우저의 이름을 얻는 방법을 알려주시겠습니까?


쉬운 일이라고 생각합니다. 답을 얻었습니다.Request.Headers["User-Agent"].ToString()

감사


userAgent = Request.Headers["User-Agent"]; 

https://code.msdn.microsoft.com/How-to-get-OS-and-browser-c007dbf7


나를 Request.Headers["User-Agent"].ToString()위해 모든 브라우저 이름을 반환하는 데 도움이되지 않았으므로 다음 솔루션을 찾았습니다.

ua-parse를 설치했습니다 . 컨트롤러에서using UAParser;

var userAgent = httpContext.Request.Headers["User-Agent"];
string uaString = Convert.ToString(userAgent[0]);
var uaParser = Parser.GetDefault();
ClientInfo c = uaParser.Parse(uaString);

위의 코드를 사용한 후 userAgent를 사용하여 브라우저 세부 정보를 얻을 c.UserAgent.Family수 있습니다.c.OS.Family;


Wangkanai 에서 웹 클라이언트 브라우저 정보 검색을 지원하도록 ASP.NET Core를 확장하는 라이브러리를 개발했습니다. 이렇게하면 브라우저 이름을 식별 할 수 있습니다.

namespace Wangkanai.Detection
{
    /// <summary>
    /// Provides the APIs for query client access device.
    /// </summary>
    public class DetectionService : IDetectionService
    {
        public HttpContext Context { get; }
        public IUserAgent UserAgent { get; }

        public DetectionService(IServiceProvider services)
        {
            if (services == null) throw new ArgumentNullException(nameof(services));

            this.Context = services.GetRequiredService<IHttpContextAccessor>().HttpContext;
            this.UserAgent = CreateUserAgent(this.Context);
        }

        private IUserAgent CreateUserAgent(HttpContext context)
        {
            if (context == null) throw new ArgumentNullException(nameof(Context)); 

            return new UserAgent(Context.Request.Headers["User-Agent"].FirstOrDefault());
        }
    }
}

참고 URL : https://stackoverflow.com/questions/28664770/how-to-get-user-browser-name-user-agent-in-asp-net-core

반응형