Asp.net কোরটিতে ব্যবহারকারী ব্রাউজারের নাম (ব্যবহারকারী-এজেন্ট) কীভাবে পাবেন?


106

আপনি কী দয়া করে আমাকে জানতে পারেন যে ক্লায়েন্টটি এমভিসি 6, এএসপি.এনইটি 5 এ যে ব্রাউজারটি ব্যবহার করছে তা কীভাবে পাবেন?

উত্তর:


165

আমি মনে করি এটি একটি সহজ ছিল। উত্তর পেয়েছিRequest.Headers["User-Agent"].ToString()

ধন্যবাদ


10
এটি আমার কাছে সমস্ত ব্রাউজারের নাম ফিরিয়ে দিয়েছে
kobosh

4
@ কোবোশRequest.Headers["User-Agent"].ToString()
টলস্টয়

10
অনুরোধটির কোনও ব্যবহারকারী-এজেন্ট না থাকলে কী-নটফাউন্ডএক্সসেপশন হলে এর ফলাফল হবে সাবধান! অবশ্যই ব্যবহার করবেন না। কন্টেইনস্কে প্রথমে চেক করুন!
ব্যবহারকারী169771

12
যে আঁচড়ের দাগ. এটি কেবল কোনও কারণে "" পরিবর্তিত হয়। ধারাবাহিকতার জন্য
হুরয়

38
কেউ কেউ Request.Headers[HeaderNames.UserAgent]স্ট্রিং আক্ষরিক এড়ানো হিসাবে পছন্দ করতে পারে (কোর ১.০ তে কাজ নাও করতে পারে, নিশ্চিত নয়)
উইল ডিন উইল

24

আমার জন্য 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;


4
ঠিক আমার কী দরকার!
এরিক

4
এটি সমস্ত ব্রাউজারের নামের তালিকা নয়, এটি ব্রাউজারটি ব্যবহারকারী-এজেন্ট হিসাবে সেট করছে। ইউএপার্সার কীভাবে এই সমস্ত নাম নেবেন এবং প্রকৃত ব্রাউজারটি কী এবং এটি ওএস কী তা নির্ধারণ করবেন তা জানেন।
জন সি

17
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


ছোট ছোট দরকারী দরকারী লেখার জন্য ধন্যবাদ
FindOutIslamNow

এই লিঙ্কটি সেরা উত্তর। ইউজার-এজেন্ট স্ট্রিংটি এমন একটি স্ট্রিং যা আপনাকে সংস্করণ তথ্য পেতে ডিসিফার এবং পার্স করতে হবে। সেখানে সরবরাহ করা ক্লাসগুলি সমস্ত কঠোর পরিশ্রম করে।
জাস্টলুকিং

ধন্যবাদ! প্রতিক্রিয়া জন্য আপডেট!
উজায়

9

আমি সমর্থন ওয়েব ক্লায়েন্ট ব্রাউজার তথ্য শনাক্তকরণ করতে 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যে এটি মোবাইল, টেবিল বা ডেস্কটপ কিনা তা খুঁজে বের করার জন্য আপনার একটি রয়েছে তবে আমি ব্যবহারকারীর এজেন্ট শিরোনামের বিশদগুলি বের করতে অনুরূপ কোড দেখতে পাচ্ছি না।
থোয়ান

আমি রেপো আপডেট করেছি এবং রেডমে আরও পরিণত হচ্ছে। github.com/wangkanai/Dtetection
Sarin Na Wangkanai

0

এই .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();
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.