Не могли бы вы дать мне знать, как получить имя браузера, который использует клиент в MVC 6, asp.net 5?
Как получить имя пользователя браузера (user-agent) в Asp.net Core?
Ответ 1
Я думаю, что это было легко. Получил ответ в Request.Headers["User-Agent"].ToString()
Спасибо
Ответ 2
userAgent = Request.Headers["User-Agent"];
https://code.msdn.microsoft.com/How-to-get-OS-and-browser-c007dbf7
Ответ 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());
}
}
}