portal页面自动弹出原理
- 格式:docx
- 大小:19.48 KB
- 文档页数:2
问题描述:Portal网页认证时认证页面无法弹出;解决方案:1.页面提示“portal server获取不到设备信息或者没有回应req_info报文”时,请参考百度文库“portal server获取不到设备信息或者没有回应req_info报文时的解决办法”;2.浏览器的HTTP报文头不符合规范时会导致portal页面无法弹出,表现为部分终端正常,部分终端弹出空白页面,对于v7版本iMC需要将如下选项改成“否”对于V5版本iMC需要修改配置文件iMC\portal\conf\portal.properties解决,将如下参数修改为“false”即可;3.使用IE8有问题,使用其他浏览器没有问题;IE8浏览器本身有些问题,建议更换浏览器使用;4.确认认证终端是否可以ping通portal server服务器的IP地址;portal认证时,确认认证终端可以ping通服务器地址,否则页面无法弹出;5.确认jserver(plat与eia集中式部署)或者webserver(分布式部署)进程是否正常;6.确认中间网络防火墙有无放开对应的端口,portal页面认证时需要放通终端到iMC服务器的8080或者80端口;7.输入IP地址可以弹出,输入域名无法弹出portal页面,这是由于认证终端不能访问DNS服务器导致,在设备侧增加一条到NDS server的free-rule即可;8.确认设备侧配置的重定向URL是否正确,正确配置为:Portal server xx ip x.x.x.x key xxx url http://x.x.x.x:8080/portal附:portal认证典型配置iMC UAM结合WX 3010做无线portal认证并基于不同SSID/操作系统推送不同认证页面的典型配置一、组网需求:Portal网页认证方式简单,无需客户端,且适用于各种终端如PC、手机、pad等。
本案例介绍了无线AC结合iMC进行portal网页的认证方式,并且能够实现根据不同的SSID或者操作系统推送不同的认证页面,从而满足客户多样化的需求。
portal认证工作原理
Portal认证是一种常用的身份认证方式,常常被用于学校、企业等机构内部网络环境,以保障安全性。
它的工作原理基于用户在登录
时提供的用户名和密码,通过验证服务器进行身份验证,从而确认用
户的身份,进而允许用户进入到内部网络环境中。
Portal认证的工作过程一般可以分为以下几个步骤:
1. 用户发起认证请求
用户打开浏览器,尝试访问内网资源时,会自动跳转至Portal认证页面。
在此页面中,用户需要输入用户名和密码以进行身份验证。
2. 认证服务器接收和验证用户信息
用户输入用户名和密码后,认证服务器会收到这些信息。
认证服务器
首先检查用户提交的信息是否合法及完整,在此过程中也包括了防止
用户试图进行非法的恶意操作。
如果用户名和密码正确,认证服务器
会向用户的电脑发送一个存储认证信息的cookie。
3. 路由器进行监测和重定向
用户的网络接入设备(一般为路由器)会接收到此认证信息,它对此
信息进行监测和路由重新定向。
在认证服务器发出认证成功的信号后,路由器将用户重定向到客户想要访问的资源。
4. 访问内部网络资源
认证成功后,用户就可以访问网络中的各种资源和服务,如文件、网
络打印机等。
Portal认证的工作原理为企业和学校网络环境的安全性和可靠性提供了有力的保障。
该认证方式简单操作,灵活方便,且用户信息可
以进行更明细的管理和控制。
可以使得机构内部的网络管理更加安全,也方便了用户进行正常的网络使用。
captiveportal原理Captive Portal原理1. 什么是Captive Portal•Captive Portal即强制门户,是一种常见的网络认证机制,用于限制用户在公共Wi-Fi网络上的访问权限。
•当用户连接到公共Wi-Fi网络时,Captive Portal会自动跳转到一个认证页面,要求用户提供一些身份认证信息,例如用户名和密码、手机号码等。
•只有在通过认证后,用户才能获得完全访问公共Wi-Fi网络的权限。
2. Captive Portal的工作原理•用户连接到公共Wi-Fi网络后,网络流量被重定向到Captive Portal认证服务器。
•认证服务器会检查用户的认证状态,如果用户已经通过认证,则网络流量被解封,用户可以正常访问互联网。
•如果用户还未通过认证,认证服务器会拦截用户的网络请求,强制将用户重定向到认证页面。
•用户在认证页面上提供必要的身份认证信息,认证服务器验证用户的信息。
•如果用户的信息是有效的,认证服务器会解封用户的网络流量,用户可以正常访问互联网。
•如果用户的信息无效或者认证服务器无法连接到认证服务器,用户将无法通过认证,访问互联网的权限将被限制。
3. 部署Captive Portal的要点•部署Captive Portal需要以下几个要点:–路由器或者无线接入点需要配置适当的重定向规则,将所有网络流量重定向到Captive Portal认证服务器。
–认证服务器需要能够接收和处理用户的认证请求,并验证用户的身份认证信息。
–认证服务器还需要与用户认证信息的存储系统进行交互,以验证用户的信息的准确性。
–认证服务器需要能够解封用户的网络流量,允许用户访问互联网。
–认证服务器需要能够管理并记录用户的认证状态,以便在用户重新认证时,能够迅速恢复用户的网络访问权限。
4. Captive Portal的应用场景•Captive Portal广泛应用于公共场所的Wi-Fi网络:–酒店、咖啡馆、机场等公共场所的无线网络通常需要对用户进行认证,限制访问权限。
苹果手机wifi 图标无法点亮的原因及portal 弹出慢问题的说明【正常iOS 系统点亮WiFi 图标过程】1、连上WiFi 后iOS 会自动发起探测帧:/hotspot-detect.html2、首先DNS 解析该域名,然后自动发送一个HTTP/1.0 的探测帧请求到/hotspot-detect.html3、终端接收到苹果服务器探测回应,如果回应报文头部为success,那么认为网络是通的,同时,状态栏的WIFI 图标出现,流程结束。
【正常iOS 系统自动弹出portal 流程】1、连上WiFi 后iOS 会自动发起探测帧:/hotspot-detect.html2、首先DNS 解析该域名,然后自动发送一个HTTP/1.0 的探测帧请求到/hotspot-detect.html3、接收到探测回应(由控制器使用苹果服务器IP 给终端回复),如果回应报文头部不是success,则不点亮WiFi 图标,认为有Captive Web Portal(CWP)存在。
4、如果有CWP 存在,iOS 就会自动打开一个页面,在这个页面中再请求一次/hotspot-detect.html,这一次使用的是HTTP/1.1。
5、此时我们控制器会使用苹果服务器IP 给终端回复一个302 moved temporarily 跳转到。
6、此时便进入到portal 页面及认证流程并点亮WiFi 图标,流程结束。
【部分iOS WiFi 图标无法点亮、portal 页面弹出缓慢原因】目前出现的苹果终端WiFi 图标无法点亮、portal 页面弹出缓慢的问题,从问题终端抓包分析,该终端在走到正常流程第三步后,没有再继续下面的流程,发HTTP/1.1 的GET 包。
(也没有发其他数据包,除了探测网关欺骗的ARP 包外),一直等到几十秒或几分钟后,才开始继续接下来的流程。
从上面问题终端的数据包截图可以看到,终端在19:26:03 收到HTTP/1.0 200 ok 包之后,一直等到19:26:47 才发出HTTP/1.1 GET 包,才开始继续后面的流程。
portal技术原理解析(Common Portlet Repository)一。
在看这篇文章之前你可能需要以下知1.RequestDispatcher.forward()方法RequestDispatcher接口所定义的forward()方法可以将HTTP请求转送给其他Web资源(例如Servlet、JSP或HTML)进行处理,并产生HTTP回应。
调用forward()方法时必须注意下列三点:*在HTTP回应被“确认”(committed)以前才能调用forward()方法(这里的“确认”是指将HTTP回应的内容主体送回用户端),否则将拋出IllegalStateException异常。
*调用forward()方法后,原先存放在HttpResponse对象中的内容将会自动被清除*request.getRequestDispatcher(url).include(request, response)就是转向指定url的意思2.RequestDispatcher.include()方法RequestDispatcher接口的include()方法与forward()方法非常类似,惟一的不同在于:利用include()方法将HTTP请求转送给其他Servlet后,被调用的Servlet虽然可以处理这个HTTP 请求,但是最后的主导权仍然是在原来的Servlet。
换言之,被调用的Servlet如果产生任何HTTP回应,将会并入原来的HttpResponse对象。
mon Portlet Repository是一个资源库,他包含了很多模块,可以提供个用户选择。
每一个Common Portlet Repository中的模块都由Portlet Deployment Discriptor来定义。
而用户的选择将会由Personal Portal Config这个文件来保存。
在用户下次登录时,系统自动读取Portlet ID ,提取信息显示用户的界面。
Portal实现原理关键字: WebworkPortal实现原理1.Portal用例读者可以在下面三个网站上注册自己的用户,体会Portal的功能。
My MSN的功能最灵活强大,用户可以任意拖放操作栏目(column)和内容版块(content)的位置和个数。
My Liferay只能选择固定的栏目(column)布局,但可以在本栏目(column)内移动内容版块(content)的位置。
My Yahoo只能选择固定的栏目(column)布局,而且不能移动内容版块(content)的位置。
Portal的结构分为三层。
(1) Page(2) Column,或者称为Pane(3) Content,或者称为Portlet我们来看看Portal的整个操作流程。
(1) 每个Column的下方都有一个[Add Content]按钮,让用户选择加入自己喜欢的内容。
从这里,我们知道,Portal系统里面有一个公用的Common Portlet Repository,供用户选用。
JSR168 Portlet规范里面定义了Portlet Deployment Discriptor。
Common Portlet Repository以这个Portlet Deployment Discriptor的格式存放。
开源项目JetSpeed的XReg文件用来存放Common Portlet Repository的定义。
(2) 加入Content之后,用户的Page和Column里面就多了这个Content。
下次用户登陆的时候,就会看到自己订制的Portal版面。
从这里,可以看出,Portal系统会纪录用户的个人Portal配置信息– User Portal Config。
开源项目JetSpeed的PSML文件用来存放User Portal Config的定义。
------- 综上。
Add Content的整个流程为:Common Portlet Repository --> Add Content --> Personal Portal ConfigDisplay Portal的整个流程为:从Personal Portal Config读取用户配置的Portlet ID --> 根据Portlet ID,从Common Portlet Repository查找详细的Portlet定义 --> 根据这个详细的Portlet定义显示这个Portlet。
电脑弹窗的原理
电脑弹窗通常指的是计算机上弹出的窗口,这可能是操作系统、应用程序或者网页浏览器等产生的。
弹窗的原理可以根据弹窗的类型和来源有所不同。
以下是几种常见的电脑弹窗原理:
1.操作系统级弹窗:
•操作系统可以在用户进行某些操作时产生弹窗,例如系统提示、错误信息、更新通知等。
•操作系统通过调用相关的系统API 来创建和显示弹窗。
2.应用程序级弹窗:
•应用程序可以在运行时产生弹窗,用于向用户展示信息、进行交互等。
•应用程序通过调用图形用户界面(GUI)库或框架提供的API 来创建和显示弹窗。
3.网页浏览器弹窗:
•网页浏览器可以通过JavaScript 脚本产生弹窗,用于实现各种交互效果或显示提示信息。
•常见的浏览器弹窗包括alert、confirm、prompt等。
4.广告弹窗:
•一些恶意软件或不良网站可能通过弹窗显示广告或欺骗用户。
•这些弹窗可能是通过浏览器漏洞、恶意脚本等手段产生的。
5.用户触发弹窗:
•用户在与计算机交互时,可能会触发一些弹窗,例如点击图标、按钮或执行某个特定的操作。
•弹窗的触发可以是用户主动操作的结果。
弹窗的显示原理通常涉及到图形用户界面(GUI)编程、操作系统调用、浏览器脚本执行等方面。
在创建弹窗时,程序通常会调用相应的API 或方法,操作系统或应用程序负责显示弹窗,并处理用户的交互。
值得注意的是,过度或滥用弹窗可能会对用户体验产生负面影响,因此在设计和实现中需要谨慎使用。
出现这种问题主要是设备配置问题,参考如下命令。
captive-bypass enablecaptive-bypass enable命令用来开启Portal被动Web认证功能。
undo captive-bypass enable命令用来关闭Portal被动Web认证功能。
【命令】captive-bypass [ android | ios [ optimize ] ] enableundo captive-bypass [ android | ios [ optimize ] ] enable【缺省情况】Portal被动Web认证功能处于关闭状态,即iOS系统和部分Android系统的用户接入已开启Portal认证的网络后会自动弹出Portal认证页面。
【视图】Portal Web服务器视图【缺省用户角色】network-admin【参数】android:开启Android用户Portal被动Web认证功能。
ios:开启iOS用户Portal被动Web认证功能。
optimize:开启Portal被动Web认证的优化功能。
【使用指导】iOS系统或者部分Android系统的用户接入已开启Portal认证的网络后,设备会主动向这类用户终端推送Portal认证页面。
开启Portal被动Web认证功能后,仅在这类用户使用浏览器访问Internet时,设备才会为其推送Portal认证页面。
Portal被动Web认证优化功能仅针对iOS移动终端有效,当iOS移动终端接入网络后会自动弹出Portal认证页面,在不认证的情况下,按home键返回桌面时Wi-Fi连接不会断开。
可以多次执行本命令使多个参数生效。
若未指定任何参数,则表示对所有用户开启Portal被动Web认证功能。
【举例】# 开启Portal被动Web认证功能。
<Sysname> system-view[Sysname] portal web-server wbs[Sysname-portal-websvr-wbs] captive-bypass enable# 开启Portal被动Web认证优化功能。
portal认证工作原理
Portal认证是一种基于Web技术的用户身份认证机制,可用于公共场所、校园、企业内部网络等环境中,用于认证用户身份,控制网络访问权限,以及记录用户的网络使用情况。
其工作原理如下:
1. 用户请求网络访问:用户在使用公共场所、校园、企业内部网络等环境中,首先要向网络发出访问请求。
2. 强制跳转到Portal页面:当用户访问网络时,系统会通过“Portal认证服务器”检查用户身份,如果用户没有通过认证,系统会强制跳转到Portal页面。
3. 用户进行身份认证:用户在Portal页面上输入用户名、密码等身份信息,或者通过短信验证码、第三方认证等方式进行身份认证。
4. 认证服务器进行用户身份验证:用户输入完身份信息后,认证服务器将对用户的身份信息进行验证,验证通过后,认证服务器向后台认证服务器发送认证请求。
6. Portal认证服务器授权用户访问网络资源:当Portal认证服务器接收到后台认证服务器的认证结果后,将根据用户的身份信息,授权用户访问不同的网络资源,比如不同的网站、服务器、应用程序等。
7. 记录认证流程和用户访问情况:为保证网络访问的安全性和管理性,Portal认证系统会记录用户的认证流程和访问情况,通过日志等方式,收集关于用户的访问信息和数据,并及时更新身份信息。
8. 访问周期和自动断开:在认证通过和用户访问网络资源之后,Portal认证系统会根据访问周期和访问时长等参数,对用户进行自动断开,并且在下次访问时重新进行身份验证。
总之,Portal认证系统是一种安全、高效的用户身份认证机制,可以有效管理网络资源和控制网络访问权限,保障网络的安全性和用户的合法性。
⽆线热点登陆认证原理探究---captiveportal什么是⼤家肯定都连过公共场所的wifi热点,⽐如麦当劳等地⽅的。
他们的wifi往往⼀连上去就会弹出⼀个要求登录或者微信关注之类的页⾯,只有在这个页⾯完成操作了才能正常访问⽹络的。
之前看到这个很神奇,为什么⼀连wifi,⼿机就会⾃动打开这个⽹页的,就知道android系统应该是提供了⼀些接⼝的。
最近接触到这个,查了⼀下才知道这个东西叫做“captive portal”,就是专门⽤来给后端的⽹关提供鉴权计费之类的服务的。
很多公共场合的wifi热点应该都⽤了这么⼀个技术,⽐如酒店,商场,银⾏等等。
1. 发送⼀个HTTP/1.0的请求到2. 接收⼀个回应,如果回应跟它预计的结果⼀致,那么认为⽹络是通的,就不会⾃动弹出页⾯。
同时,状态栏的WIFI图标出现。
流程结束。
否则,进⼊下⼀步。
3. 如果收到的回应不是它想要的那个,它就认为有CWP存在。
4. 如果有CWP存在,iOS就会⾃动打开⼀个页⾯,在这个页⾯中再请求⼀次,这⼀次使⽤的是HTTP/1.1。
5. 然后就可以打开Login页⾯了。
1.⼀个通常的认证流程是什么样的,从设备接⼊到认证前后发⽣了哪些动作?具体的实施⽅式有不⽌⼀种,例如:Redirection by HTTP(HTTP 重定向)ICMP Redirect (ICMP 重定向)Redirection by DNS (DNS 重定向)在设备第⼀次接⼊到⽆线⽹络的时候,会通过 DHCP 服务获取到⼀个 IP 地址,可能是公有地址也可能是私有地址。
不论分配到的 IP 地址属于公有或者私有,此时客户端都只具备访问指定站点的权限,需要在 Portal 页⾯上完成认证(确认接受使⽤条款,验证账号密码等),在Portal 页⾯完成认证后,这个系统通常会⽴即执⾏⼀系列的动作包括,重新分配地址(在原本是私有地址时可选),更新这台设备对应的权限控制列表(ACL)中的信息解除访问限制,并开始计时/计费等动作。
无线3G/4G路由器强制Portal功能介绍一、功能Portal功能会在用户接入路由器打开浏览器访问网页时强制弹出事先配置好的功能页面以达到广告推送、业务推广的目的。
目前我们能弹出的页面有如下三种,第一种页面是简单的弹出包含图片广告的网页,请看下面的效果图。
在这个页面用户点击《同意以下条款》按钮之后就可以直接正常上网。
第二种页面是弹出包含视频广告的网页,请看下面的效果图。
在这个页面,用户点击《同意以下条款》按钮之后必须看完事先配置好的广告视频,等广告视频播放完成之后用户就可以正常上网了。
第三种页面是可以支持短信认证网页,请看下面的效果图。
在这个页面,用户首先必须通过手机获取动态的短信验证码,之后输入获取到的密码完成验证之后才可以正常上网。
以上三种页面中都有一个《观看本地视频》的按钮,点击这个按钮之后可以跳转到包含本地视频文件的页面,请看下面的效果图。
在这个页面点击视频之后就可以观看路由器事先保存的视频了。
注:弹出的页面可以由客户自定义或者根据客户要求我们帮其定制特有的弹出页面。
除了强制弹出网页之外,portal功能还可以对接入用户进行流量限制、端口过滤等。
还可以设置登录超时、空闲超时、重定向主页、白名单等功能。
二、配置Portal功能在《高级网络》——> 《热点推送》页面配置。
下面对配置页面的一些功能项做简单说明。
《重定向网站http://》——用户认证完成之后就会自动跳转到这里配置的网页。
《登录服务超时》——用户认证通过之后,登录时间如果超过这里设置的时间,则路由器会重新弹出portal页面需要用户重新做认证。
《终端空闲超时》——用户认证通过之后,在这里指定的时间之内没有任何数据流量,则路由器会重新弹出portal页面需要用户重新做认证。
《免认证MAC地址》——如果用户设备的MAC地址被设置到这里,那该用户就不会弹出portal页面、也不需要做认证就可以正常上网。
《终端流量控制》——用于用户认证通过之后,控制其上行下行速率。
弹出窗口的原理弹出窗口是指在Web页面上通过点击或触发某个事件后,在当前窗口之上打开一个新的浏览器窗口或弹出一个新的浮动窗口。
弹出窗口的原理主要涉及到浏览器的窗口管理机制以及JavaScript的事件处理机制。
首先,浏览器的窗口管理机制决定了如何创建、显示和关闭窗口。
浏览器通常有一个主窗口用于显示Web页面,而在这个主窗口之上可以打开多个新窗口或弹出窗口。
当用户点击一个链接或通过JavaScript代码触发弹出窗口时,浏览器会根据相应的设置创建一个新的窗口或浮动窗口。
其次,JavaScript的事件处理机制允许我们在特定条件或交互中触发自定义的事件并执行相应的代码。
当用户点击某个元素或触发某个事件时,可以通过JavaScript代码触发弹出窗口事件。
在事件处理函数中,我们可以调用浏览器提供的窗口打开函数(如window.open)来创建一个新的窗口。
通过window.open 函数可以指定新窗口的大小、位置、标题、URL等属性,甚至还可以在URL中传递参数。
在实现弹出窗口时,我们通常使用window.open函数来打开新窗口。
该函数接受三个必选参数和多个可选参数。
必选参数包括要打开的URL、新窗口的名称和窗口的特性。
URL指定了要在新窗口中显示的文档地址,可以是相对路径或绝对路径。
新窗口的名称可以是预定义的命名窗口(如_blank、_parent、_top 等)或自定义的窗口名称。
窗口的特性用于指定新窗口的属性,如大小、位置、是否可最大化、是否显示菜单栏等。
除了以上必选参数,window.open函数还可以接受可选参数,用于设置新窗口的额外属性。
例如,可以设置新窗口是否具有滚动条、是否具有工具栏、是否具有状态栏等。
此外,还可以设置新窗口是否具有可调整大小的边框、是否具有地址栏、是否在新窗口中显示滚动条等。
这些属性可以根据需要进行设置,以实现不同类型的弹出窗口效果。
一旦调用window.open函数创建了新窗口,浏览器会按照指定的特性和设置打开新窗口,并加载相应的文档。
portal认证系统服务器原理及应用Portal认证方式具有:不需要安装认证客户端,减少客户端的维护工作量、;便于运营,可以在Portal页面上开展业务拓展、技术成熟等优点而被广泛应用于运营商、学校等网络。
目前在公共场合也有很多的WIFI热点.WIFI本身不加密,但是当用户访问网络的时候,会要求用户输入用户名和密码.认证成功后就可以上网了.WEB认证的特点显而易见,就是不需要特殊的客户端,有浏览器就可以了.所以,手机也可以方面的使用.下图是WEB认证的原理图(CHAP认证):本文所要描述的就是PortalServer的原理与算法.PortalServer 和BAS 之间的通讯遵循华为的PORTAL v1.0协议.以下是协议格式:以下是部分源代码和说明.typedef struct portal_header{u_int8_t ver; //版本,在本例中为1u_int8_t type; //报文类型u_int8_t auth_type; //认证类型,CHAP或者PHP,本文为CHAP协议u_int8_t rsv; //保留字段,恒为零u_int16_t sn; //序列号,用于关联报文用,在一定时间是不能重复的u_int16_t reqid; //应答IDu_int32_t userip; //用户的IPu_int16_t userport; //用户端口,恒为零u_int8_t errcode; //错误码,非常有用的字段u_int8_t attrnum; //属性个数}portal_header_t;定义了PORTAL协议的协议头.如果属性个数不为零,那么后面将跟attrnum个属性.以下是构造挑战报文的代码:sn=(u_int16_t)(1+(int)(9098.0*rand()/(RAND_MAX+1.0))); //随机码req_chap->ver=ver;req_chap->type=REQ_CHALLENGE;req_chap->auth_type=CHAP;req_chap->rsv=0x00;req_chap->sn=sn;req_chap->reqid=0x00;;req_chap->userip = in->s_addr; //客户的IPreq_chap->userport=0x0;req_chap->errcode=0x0;req_chap->attrnum=0x0;当收到了type为0x02的报文,并且errcode=0x00时,说明挑战成功.接下来就可以发送认证请求报文了,以下是构造请求报文的代码: (ra->header).ver = 0x01;(ra->header).type=REQ_AUTH;(ra->header).auth_type=CHAP;(ra->header).rsv=0x00;(ra->header).sn= //新的随机码(ra->header).reqid = req_chap->reqid;(ra->header).userip = req_chap->userip;(ra->header).userport=0x0;(ra->header).errcode=0x0;(ra->header).attrnum=0x2;这个请求报文带两个属性.关键的CHAP密码构造代码如下:MD5_Init(&ctx);MD5_Update(&ctx, &reqid, 1);MD5_Update(&ctx, passwd, strlen(passwd));MD5_Update(&ctx, challenge, 16);MD5_Final(d3, &ctx);如果收到CHAP应答报文,错误代码为零的话,就说明认证成功了.本程序的使用命令如下:cr ver protocol basip username password client_ipver 协议版本,本文只实现了V1protocol CHAP 或者PAP ,本文只实现了CHAP,PAP实现起来更简单.basip BAS的ip ,就是报文发送到的设备IPusername 从WEB过来的用户名password 从WEB PORTAL 过来的密码client_ip 客户的IP地址蓝海卓越Web Portal的组网方式通常如下:蓝海卓越Web Portal的基本认证过程为:(1)用户连接到网络后,终端通过DHCP由BAS做DHCP-Relay,向DHCP Server要IP地址(私网或公网);(也可能由BAS直接做DHCP Server)。
Portal页面调用操作指南信锐网科技术有限公司2015年9 月25 日第1章 Portal页面重定向原理1.1.重定向原理终端连接配置为“开放式+Web认证”的WiFi后,会获取一个认证前角色,该角色只允许用户进行DNS 解析,拒绝其他协议的流量。
用户打开浏览器,访问域名时先解析为网站对应的公网IP地址,然后控制器将用户的访问页面重定向到Portal页面(http:// )。
当用户通过认证后,会获取认证后角色,该角色允许用户访问网络。
1.2.SSID认证方式配置本文档采用免认证方式作案例进行配置。
新建SSID,在【认证类型】中选择开放式+Web认证,认证方式选择访客认证。
认证页面选择使用统一的认证页面,使用默认全屏显示竖向广告模板。
选择Android不自动弹出认证页面,iOS自动弹出认证页面。
使用“帮我创建认证前角色”功能自动创建一个认证前角色。
访客认证中勾选免用户认证,认证通过后统一分配默认角色。
设置正确的VLAN,认证后跳转到,提交并点击立即生效。
在能够正常进行DNS解析的情况下,连接该SSID,访问网络,会弹出Portal认证页面。
笔记本页面如下:手机页面如下:第2章内置Portal页面编辑2.1.内置Portal页面模板编辑设备内置的Portal页面模板支持编辑,点击【认证页面】【终端页面】中模板名称即可。
内置模板支持上传修改LOGO,设置认证区域透明度,编辑页面文字,选择是否启用免责声明,默认显示的语言,支持中英文切换。
页面文字编辑中,可以对各种认证方式标题、描述和按钮名称进行修改。
在广告展示效果中,支持设置为播放广告图片或显示其他网站的广告页面。
可启用强制用户必须浏览一定时长的广告后才允许进行认证。
若选择播放广告图片,可添加需要播放的广告图片,和点击图片后跳转的连接。
该连接地址需要在认证前角色中允许通过。
若选择显示其他网站的广告页面,需指定该网站的URL地址。
第3章自定义Portal页面调用3.1.Portal页面模板下载点击认证页面模板右边的下载,可以下载该模板进行编辑。
react portal 原理React Portal 原理React Portal 是 React 的一种特殊的渲染方式,它允许我们将组件渲染到 DOM 树中任意位置,而不仅仅是在组件的父节点中。
这个特性可以帮助我们解决一些常见的 UI 问题,例如弹出框、模态框等。
Portal 的实现原理比较简单,本文将从以下几个方面进行介绍:1. 什么是 React Portal?2. 如何使用 React Portal?3. React Portal 实现原理4. React Portal 的优缺点1. 什么是 React Portal?React Portal 是一种特殊的渲染方式,它允许我们将组件渲染到任意位置的 DOM 节点中。
通常情况下,React 组件都会被渲染到其父节点中,但有时候我们需要将组件渲染到其他位置上。
例如,在一个应用程序中可能会出现一个弹出框或者模态框。
这些弹出框或者模态框通常都需要在应用程序的根节点之外进行渲染。
如果没有 React Portal 这个特性,那么就需要手动创建一个 DOM 元素,并且手动管理它们的显示和隐藏状态。
2. 如何使用 React Portal?使用 React Portal 非常简单。
首先,在你的应用程序中创建一个新的DOM 元素,这个元素将用于渲染 Portal 组件。
例如:```jsxconst modalRoot = document.getElementById('modal-root');class Modal extends ponent {constructor(props) {super(props);this.el = document.createElement('div');}componentDidMount() {modalRoot.appendChild(this.el);componentWillUnmount() {modalRoot.removeChild(this.el);}render() {return ReactDOM.createPortal(this.props.children,this.el,);}}```在上面的代码中,我们创建了一个 `Modal` 组件,并且将其渲染到了`modal-root` 元素中。
Portal技术介绍Portal是web应用发展的一个重要趋势,目前几乎所有大的软件厂商都有自己的Portal产品。
并且Portal技术已经形成规范。
本文对Portal技术和产品进行了分析,目的是为公司产品的规划提供参考。
1 Portal的概念根据(JSR (Java Specification Request) 168)的定义,Portal是基于web的应用,它主要作为信息系统的展现层,提供个性化、统一登录和内容整合的功能。
整合就是将不同来源的信息集中展现在一张网页上。
一个Portal可以具有很多个性化参数,用来调整为用户定制的内容。
对于不同用户,一个Portal网页可能由多组不同的页面构件-portlet组成,portlet为不同用户生成不同的定制内容。
Portal网页的内容如图1所示。
Portal网页中的Portlet窗口一般有常规、最大化和最小化三种状态,窗口的状态可以由用户调整。
从上面的定义可以看出,Portal的核心思想是网页个性化,它有两个含义,一是为不同的网页访问者匹配不同的内容,二是为不同的网页访问者提供不同的portlet应用服务,并在所能提供服务的基础上根据访问者的不同相应改变处理流程。
1.1Portal的分类最初的Portal指的是像YahooLycos这样的Internet门户网站。
这些门户网站为用户提供了检索、分类和类似"My Yahoo!"的个性化定制服务,目的是帮助用户更快地找到自己所需要的信息。
这样的Portal被称为Public Portal即面向公众的信息门户。
随着web应用的发展,又出现了Vertical Portal和Enterprise Information Portal。
Vertical Portal 即行业门户,目的是帮助某一行业的商业人员和技术人员找到自已需要的特定行业的商业信息和技术信息。
Enterprise Information Portal(EIP)即企业信息门户。
在WIFI的应用场景中,有个很典型的应用,叫做Captive Portal,也叫Captive Web Portal(CWP)。
大致流程是:
1.用户的移动设备(例如手机)接入WIFI。
2.打开任意网页。
3.得到一个类似Login的页面,需要用户填写一些信息,然后提交。
4.认证通过后,允许自由访问网络,否则无法上网。
电信、移动等运营商经常会推出一些市区里的WIFI,很多用的就是这种方式。
还有像机场等地。
有个典型的应用,就是杭州的ihangzhou。
iOS,还有Mac OS,都有个功能,当接入无线网络后,会自动检测网络是否通。
如果不通,则会自动弹出一个页面,让用户去登录。
Apple把这种功能叫做Captive Network Assistant(CNA)。
其原理如下:
1.发送一个HTTP/1.0的请求
到/library/test/success.html
2.接收一个回应,如果回应跟它预计的结果一致,那么认为网络是通的,就
不会自动弹出页面。
同时,状态栏的WIFI图标出现。
流程结束。
否则,
进入下一步。
3.如果收到的回应不是它想要的那个,它就认为有CWP存在。
4.如果有CWP存在,iOS就会自动打开一个页面,在这个页面中再请求一次
/library/test/success.html,这一次,使用的是HTTP/1.1。
5.然后就可以打开Login页面了。
在第2步中,如果有CWP存在,收到的回应通常是一个Login页面,这个和第5步收到的结果应该是一样的。
如果网络能,则可以收到下面的回应。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML
3.2//EN"><HTML><HEAD><TITLE>Success</TITLE></HEAD><BODY>Success</BODY ></HTML>
只是第2步中,iOS是如何判断的,不得而知。
不过只要保证收到上面的响应,则一定能通。
那么,第2步中如果没有收到响应,或是收到了非HTTP 200的响应又会如何呢?
根据我的测试,如果没收到响应,依然会弹出一个窗口。
不过,这不是一种正常的CWP状态。
非HTTP 200的情况,我只试了HTTP 302重定向。
在这种情况下,iOS不会自动弹出Login页面。
在上面的5步中,得到了一个Login页面,然后又会发生什么呢?
用户拿到Login页面后,应该填写一些信息,并且提交。
iOS会在用户提交后,立即发一边第1步中的请求,再次检测网络。
如果此时网络还是不通,iOS会自动断开当前的SSID。
不过这个行为好像有点不稳定,具体就不细说了。
网络通了后,在iOS上基本有2个现象。
一是右上角的“取消”按钮变成”完成“,或是自动关闭这个窗口,行为似乎不太一致。
最关键的是顶端状态栏WIFI 图标的出现。
从现象上看,只要WIFI图标不出来,iOS就不允许有流外出(部分特殊的除外)。
********** 副作用**********
iOS的这种行为,其实没给用户多少方便,却会带来不少麻烦。
我记得在iOS 4时,还可以选择是否启用auto-login。
不过iOS 6已经没有这个选项了。
理论上讲,这个功能最麻烦的就是要保证你所在的网络可以访问
/library/test/success.html。
如果仅仅是在公司内部网络,不允许访问外网,那么iOS就无法连接了。
【题外话】在iOS 5以前,只有open的SSID才会发test请求。
(open的SSID 指的是没有802.1X或PSK认证的)。
而从iOS 6开始,连上非open的网络也会发这个test了。
所以,在这种内网的情况下,需要防火墙开放的访问,或是WIFI AP可以支持避开CNA的检测。
我一直没在网上找到关于CNA的判断标准,不知道Apple搞这么个东西干吗。
********** 测试结果 **********
写完此文,心里一直痒痒的,想知道第2步究竟是怎么判断的。
于是立即动手测试。
我发现,只要响应页面中,<TITLE>的值是Success,大小写敏感,就可以欺骗iOS了。
测了iOS 6.0和Mac OS 10.7,结果都一样。
这下我心里释怀了。
不知道新版本会不会有变化。
该死的苹果。