Подтвердить что ты не робот

Как получить имя пользователя браузера (user-agent) в Asp.net Core?

Не могли бы вы дать мне знать, как получить имя браузера, который использует клиент в MVC 6, asp.net 5?

4b9b3361

Ответ 1

Я думаю, что это было легко. Получил ответ в Request.Headers["User-Agent"].ToString()

Спасибо

Ответ 3

Для меня Request.Headers["User-Agent"].ToString() не помог cuase вернуть все имена браузеров, поэтому нашел следующее решение.

Установлен 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;

Ответ 4

Я разработал библиотеку для расширения ASP.NET Core для поддержки обнаружения информации о браузере веб-клиента в Wangkanai.Detection. Это должно позволить вам идентифицировать имя браузера.

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());
        }
    }
}