web-dev-qa-db-fra.com

Comment obtenir le nom d'utilisateur du navigateur (user-agent) dans Asp.net Core?

Pouvez-vous s'il vous plaît laissez-moi savoir comment obtenir le nom du navigateur que le client utilise dans MVC 6, asp.net 5?

54
eadam

Je pense que c'était facile. Vous avez la réponse dans Request.Headers["User-Agent"].ToString().

83
eadam
5
Uzay

J'ai développé une bibliothèque pour étendre ASP.NET Core afin de prendre en charge la détection d'informations de navigateur de client Web sur Wangkanai.Detection Cela devrait vous permettre d'identifier le nom du navigateur.

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());
        }
    }
}
4
Sarin Na Wangkanai

Pour moi, Request.Headers["User-Agent"].ToString() n'aide pas à retourner tous les noms de navigateurs afin de trouver la solution suivante.

Installé ua-parse . Dans le contrôleur using UAParser; 

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

après avoir utilisé le code ci-dessus, il a été possible d’obtenir les détails du navigateur de userAgent à l’aide de c.UserAgent.Family Vous pouvez également obtenir les détails du système d’exploitation tels que c.OS.Family;.

1
Aneeq Azam Khan