जवाबों:
मुझे लगता है कि यह एक आसान था। में जवाब मिलाRequest.Headers["User-Agent"].ToString()
धन्यवाद
Request.Headers["User-Agent"].ToString()
Request.Headers[HeaderNames.UserAgent]
स्ट्रिंग शाब्दिक से बचने के रूप में पसंद कर सकते हैं (कोर 1.0 में काम नहीं किया है, निश्चित नहीं हो सकता)
मेरे लिए 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);
ऊपर कोड का उपयोग करने के बाद c.UserAgent.Family
आप का उपयोग कर OS विवरण प्राप्त कर सकते हैं जैसे उपयोगकर्ता द्वारा उपयोगकर्ता के विवरण से ब्राउज़र विवरण प्राप्त करने में सक्षम थाc.OS.Family;
userAgent = Request.Headers["User-Agent"];
https://code.msdn.microsoft.com/How-to-get-OS-OS-and-browser-c007dbf7 (लिंक लाइव नहीं) 4.8 के लिए जाएं
https://docs.microsoft.com/en-us/dotnet/api/system.web.httprequest.useragent?view=netframework-4.8
मैंने वांगकानाइ पर वेब क्लाइंट ब्राउज़र की जानकारी का पता लगाने के लिए 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());
}
}
}
DeviceResolver.cs
लगता है कि आपके पास यह पता लगाने के लिए है कि यह एक मोबाइल, टेबल या डेस्कटॉप है, लेकिन मैं उपयोगकर्ता एजेंट हेडर का विवरण निकालने के लिए समान कोड नहीं देख सकता।
इस .nuget पैकेज को स्थापित करें
इस तरह एक वर्ग बनाएँ:
public static class YauaaSingleton
{
private static UserAgentAnalyzer.UserAgentAnalyzerBuilder Builder { get; }
private static UserAgentAnalyzer analyzer = null;
public static UserAgentAnalyzer Analyzer
{
get
{
if (analyzer == null)
{
analyzer = Builder.Build();
}
return analyzer;
}
}
static YauaaSingleton()
{
Builder = UserAgentAnalyzer.NewBuilder();
Builder.DropTests();
Builder.DelayInitialization();
Builder.WithCache(100);
Builder.HideMatcherLoadStats();
Builder.WithAllFields();
}
}
अपने नियंत्रक में आप http हेडर से उपयोगकर्ता एजेंट को पढ़ सकते हैं:
string userAgent = Request.Headers?.FirstOrDefault(s => s.Key.ToLower() == "user-agent").Value;
तब आप उपयोगकर्ता एजेंट को पार्स कर सकते हैं:
var ua = YauaaSingleton.Analyzer.Parse(userAgent );
var browserName = ua.Get(UserAgent.AGENT_NAME).GetValue();
आप विश्वास स्तर भी प्राप्त कर सकते हैं (उच्चतर बेहतर है):
var confidence = ua.Get(UserAgent.AGENT_NAME).GetConfidence();