如何使用用户代理检测请求是来自桌面还是移动?

时间:2016-06-25 06:30:40

标签: c# asp.net wcf

这是我的方法,我得到了用户详细信息,我记录了我的应用程序。我想使用用户代理检查请求是来自desktop还是mobile。我该怎么办?

        public UserDetails Authenticate()
        {
            try
            {
                _logger.Info("authenticating...");
                var message = OperationContext.Current.RequestContext.RequestMessage;
                var request = (HttpRequestMessageProperty)message.Properties[HttpRequestMessageProperty.Name];
                string token = request.Headers[HttpRequestHeader.Authorization];
                var base64decodedtoken = this.Base64Decode(token);
                UserBLL user = new UserBLL();
                var userdetails = user.GetUserDetails(base64decodedtoken, true);    
                if (userdetails.UserId > 0)
                {
                    _logger.Info("authentication successfull... for user id" + userdetails.UserId);   
                    int i = user.AuditUserLogin(userdetails.Email);

                }
                else
                {
                    _logger.Info("Unauthorised Access" + userdetails.Email);
                }
                return userdetails;
            }
            catch (Exception ex)
            {
                _logger.Error("Error Occured in Authentication Service", ex);
                ErrorData errorData = new ErrorData("Error Occured ", ex.Message);
                throw new WebFaultException<ErrorData>(errorData, HttpStatusCode.Unauthorized);
            }
        }

1 个答案:

答案 0 :(得分:0)

请参阅this MDN article获取答案。

基本上,不建议用户代理进行移动/桌面检测,但如果您必须以这种方式对工作进行排序,您还可以参考this link