using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
namespace Niunan.BamaTZ.Web.Models
{
public static class RequestExtensions
{
//regex from http://detectmobilebrowsers.com/
private static readonly Regex b = new Regex(@"(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino", RegexOptions.IgnoreCase | RegexOptions.Multiline);
private static readonly Regex v = new Regex(@"1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-", RegexOptions.IgnoreCase | RegexOptions.Multiline);
public static bool IsMobileBrowser(this HttpRequest request)
{
var userAgent = request.UserAgent();
if ((b.IsMatch(userAgent) || v.IsMatch(userAgent.Substring(0, 4))))
{
return true;
}
return false;
}
public static string UserAgent(this HttpRequest request)
{
return request.Headers["User-Agent"];
}
}
}
下面是使用方法:
bool b = Models.RequestExtensions.IsMobileBrowser(HttpContext.Request);
if (b)
{
return Redirect("/m/home/index");
}
相关推荐
1. **模板和控件**:ASP.NET提供了多种预定义的网页模板和服务器控件,如Gridview、FormView等,这些控件简化了页面布局和数据展示,提高了开发效率。 2. **MVC架构**:ASP.NET MVC(Model-View-Controller)是一种...
本篇将深入探讨基于ASP.NET实现的外卖订餐系统,包括PC端、移动端以及商户端的功能设计和实现原理。 一、ASP.NET框架基础 ASP.NET是.NET Framework的一部分,提供了一整套用于构建动态网站、Web应用和Web服务的工具...
C#与ASP.NET是微软公司...通过学习这些基础概念和实践,初学者可以逐步掌握C#与ASP.NET网页开发,并具备开发高效、安全、用户体验良好的Web应用程序的能力。在这个过程中,不断实践和项目经验积累将是提升技能的关键。
在ASP.NET Zero Core 12.0.1中,你可以期待以下特性: 1. **.NET Core支持**:此版本基于.NET Core,意味着跨平台兼容性,可以在Windows、Linux和macOS上运行。同时,.NET Core的性能和可移植性优势也得以体现。 2...
在"ASP.NET程序设计基础篇"中,作者林煌章可能详细介绍了ASP.NET的基础概念、开发环境、网页结构以及基本编程模型。 1. **基础概念**:ASP.NET的核心概念包括Web Forms、MVC(Model-View-Controller)和Web API等。...
管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: ...
在IT行业中,C#、.NET以及ASP.NET是微软生态系统中的关键组成部分,广泛应用于企业级应用开发。这些技术栈在面试中常常成为考察候选人技能的重要领域。以下是对这些知识点的详细解析: 一、C#(C Sharp) 1. **...
现代物业管理系统往往需要考虑移动端的用户体验,可以使用ASP.NET MVC或ASP.NET Core开发响应式界面,使系统在手机和平板电脑上也能正常工作。 综上所述,一个基于ASP.NET C#的物业管理系统是一个全面集成的解决...
ASP.NET MVC(Model-View-Controller)和ASP.NET Core是ASP.NET框架的重要组成部分,它们提供了灵活的架构来组织和管理代码,便于测试和维护。 开源意味着源代码对公众开放,任何人都可以查看、使用、修改和分发。...
# 基于C#和ASP.NET Core的智能家居管理系统 ## 项目简介 本项目是一个基于C#和ASP.NET Core框架的智能家居管理系统,旨在通过物联网技术实现对家庭环境的实时监控和管理。系统包括多个客户端(如控制台、移动端和...
这个"ASP.NET网页设计与网站开发"的压缩包文件包含了关于ASP.NET的基础知识和实践应用,非常适合初学者和希望深化技能的专业人士学习。 在ASP.NET中,网页是由服务器端控件、代码和标记语言(如HTML、CSS和...
首先,ASP.NET的核心组件包括ASP.NET Web Forms、ASP.NET MVC、ASP.NET Core等。本系统可能采用了其中的一种或多种,这些技术可以帮助开发者创建交互式的动态网页,并提供强大的数据访问和处理能力。ASP.NET Web ...
ASP.NET是微软公司开发的一种...通过学习以上ASP.NET程序设计的基础知识,开发者能够建立起坚实的基础,进一步探索更高级的主题,如SignalR实现实时通信、ASP.NET Core的微服务架构,以及云计算中的Azure Web Apps等。
9. **跨平台支持**:随着.NET Core的推出,ASP.NET T5也可能支持跨平台开发,可以在Windows、Linux和macOS上运行。 10. **持续集成和持续部署(CI/CD)**:ASP.NET T5可能集成了与Azure DevOps或其他CI/CD工具的...
ASP.NET 是微软公司开发的一种用于构建 Web 应用程序的框架,它基于 .NET Framework 或 .NET Core(针对跨平台支持)。ASP.NET 提供了一种结构化的、高效的方式来创建动态网站、Web 应用程序和服务。它允许开发者...
ASP.NET MVC或Core的响应式布局可以确保在不同设备上都能正常显示。 10. **安全性和稳定性**:ASP.NET自带的安全特性如CSRF令牌、XSS防护,以及IIS服务器的配置,有助于提高系统的安全性。同时,使用版本控制(如...
Asp.net 提供了多种开发模式,包括ASP.NET Web Forms、ASP.NET MVC 和ASP.NET Core。在这个学习网站中,很可能是使用Web Forms模式,这是一种事件驱动的编程模型,与传统的Windows应用程序类似,适合快速开发和那些...
ASP.NET提供了多种开发模式,如ASP.NET MVC(Model-View-Controller)、Web Forms和ASP.NET Core。在这个大型车辆管理系统中,可能是使用了其中的一种或多种模式来实现业务逻辑和数据处理。 【压缩包子文件的文件...
在这个.NET Core实战项目中,我们主要关注的是CMS(Content Management System)的设计与实现,这是一套精简但功能强大的权限管理和内容管理系统,它基于ASP.NET Core框架构建。通过学习这个源码,我们可以深入了解...
ASP.NET采用C#或VB.NET作为编程语言,支持多种开发模式,如Web Forms、MVC和ASP.NET Core。 在电子购物商城系统中,源代码通常包括以下几个核心模块: 1. 用户模块:用户注册、登录、密码找回、个人信息管理等功能...