আপনি কী দয়া করে আমাকে জানতে পারেন যে ক্লায়েন্টটি এমভিসি 6, এএসপি.এনইটি 5 এ যে ব্রাউজারটি ব্যবহার করছে তা কীভাবে পাবেন?
উত্তর:
আমি মনে করি এটি একটি সহজ ছিল। উত্তর পেয়েছিRequest.Headers["User-Agent"].ToString()
ধন্যবাদ
Request.Headers["User-Agent"].ToString()
Request.Headers[HeaderNames.UserAgent]
স্ট্রিং আক্ষরিক এড়ানো হিসাবে পছন্দ করতে পারে (কোর ১.০ তে কাজ নাও করতে পারে, নিশ্চিত নয়)
আমার জন্য Request.Headers["User-Agent"].ToString()
সমস্ত ব্রাউজারের নাম ফেরত দেওয়ার চুয়েসে সহায়তা করেনি যাতে নিম্নলিখিত সমাধানটি পাওয়া যায়।
ইনস্টল করা ইউএ পার্স । নিয়ামক মধ্যে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
আপনি ওএসের বিবরণ মতো পেতে পারেনc.OS.Family;
userAgent = Request.Headers["User-Agent"];
https://code.msdn.microsoft.com/How-to-get-OS-and-browser-c007dbf7 (লিঙ্কটি লাইভ নেই) 4.8 এ যান
https://docs.microsoft.com/en-us/dotnet/api/system.web.httprequest.useragent?view=netframework-4.8
আমি সমর্থন ওয়েব ক্লায়েন্ট ব্রাউজার তথ্য শনাক্তকরণ করতে ASP.NET কোর প্রসারিত করতে একটি লাইব্রেরি গড়ে তুলেছে 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());
}
}
}
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();