简介:
### CAS单点登录服务器配置详解#### 一、CAS单点登录概述CAS(Central Authentication Service)是一种开放源代码的单点登录协议和服务框架,它为Web应用提供了一种简化了的身份验证流程。
通过CAS,用户只需要在一个地方完成登录过程,即可在多个应用间共享登录状态,无需重复登录。
#### 二、CAS服务器安装与配置##### 2.1 安装CAS服务端1. **下载CAS服务端**:首先从官方网址http://www.cas.org/下载最新的CAS服务端压缩包。
2. **部署WAR包**:将下载的WAR包复制到Tomcat的webapps目录下,并将其重命名为`cas.war`。
3. **启动Tomcat**:启动Tomcat服务器,自动解压WAR包,此时会在Tomcat的webapps目录下生成一个名为`cas`的文件夹。
4. **访问CAS**:通过浏览器访问`http://localhost:8896/cas`来测试CAS服务是否正常启动。
##### 2.2 配置CAS使用数据库验证为了实现更安全、更灵活的身份验证机制,我们可以配置CAS使用数据库进行用户身份验证。
具体步骤如下:1. **修改部署配置文件**:打开`cas-server-webapp\WEB-INF\deployerConfigContext.xml`文件,找到`SimpleTestUsernamePasswordAuthenticationHandler`配置项,将其替换为`QueryDatabaseAuthenticationHandler`。
```xml <bean id="authenticationHandler" class="org.jasig.cas.authentication.handler.QueryDatabaseAuthenticationHandler"> <!-- 数据库连接数据源 --> <property name="dataSource" ref="dataSource"/> <!-- 查询语句 --> <property name="sql" value="SELECT password FROM users WHERE username = ?"/> <!-- 密码加密方式 --> <property name="passwordEncoder" ref="passwordEncoder"/> </bean> ```2. **配置数据库连接**:在同一文件中添加一个新的`dataSource` bean来定义数据库连接信息。
```xml <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/casdb"/> <property name="username" value="casuser"/> <property name="password" value="password"/> </bean> ```3. **配置密码加密方式**:继续在同一文件中添加`passwordEncoder` bean来指定密码加密方式,这里使用MD5作为示例。
```xml <bean id="passwordEncoder" class="org.springframework.security.crypto.password.StandardPasswordEncoder"> <constructor-arg value="MD5"/> </bean> ```4. **测试数据库验证**:重启Tomcat服务器,访问CAS服务器页面,使用数据库中的用户名和密码尝试登录,验证是否可以成功登录。
#### 三、CAS工作原理CAS的工作原理主要分为以下几个步骤:1. **用户访问服务**:用户首次访问受保护的资源时,CAS客户端会检测到HTTP请求中缺少ServiceTicket(简称ST),表明用户尚未经过身份验证。
2. **重定向至CAS服务器**:CAS客户端会将用户重定向到CAS服务器进行身份验证,并携带用户的请求URL作为参数(service参数)。
3. **用户认证**:CAS服务器接收到来自用户的认证请求后,引导用户进入登录页面。
用户输入用户名和密码进行登录,若身份验证成功,则CAS服务器通过HTTPS协议返回一个TGC(Ticket-Granting Cookie)给浏览器。
4. **发放ServiceTicket**:CAS服务器生成一个随机的ServiceTicket(简称ST),并将用户重定向回CAS客户端。
5. **验证ServiceTicket**:CAS客户端收到ST后,向CAS服务器验证ST的有效性。
如果验证通过,则允许用户访问受保护资源。
6. **传输用户信息**:CAS服务器验证ST通过后,将用户的相关认证信息发送给CAS客户端。
通过以上步骤,CAS实现了单点登录的功能,极大地提升了用户体验和系统的安全性。
### 四、CAS与HTTPS在配置CAS服务器时,可以选择使用HTTPS协议来增强通信的安全性。
如果选择HTTPS协议,则需要在服务器上配置CAS证书。
证书的创建和导入过程可以参考以下链接:[http://m.blog..net/zrk1000/article/details/51166603](http://m.blog..net/zrk1000/article/details/51166603)### 总结本文详细介绍了如何配置CAS单点登录服务,并重点讲解了如何利用Java代码实现CAS的配置,包括使用数据库进行登录验证的具体步骤。
同时,还阐述了CAS的基本工作原理,帮助读者更好地理解CAS的工作流程和技术细节。
2025/6/15 19:47:19 293KB
1
版本修改记录:V2.2.0.2修改:修改了HttpPost相对路径的一些问题。
V2.2.0.0增加:[id(0x00010041),helpstring("GetRevIndex")]HRESULTGetRevCount([out,retval]long*pbool);[id(0x00010042),helpstring("GetRevIndexInfo")]HRESULTGetRevInfo([in]longlIndex,[in]longlType,[out,retval]BSTR*pbool);[id(0x00010043),helpstring("SetDocProp")]HRESULTSetValue([in]BSTRstrValue,[in]BSTRstrName,[out,retval]long*pbool);[id(0x00010044),helpstring("SetDocVariable")]HRESULTSetDocVariable([in]BSTRstrVarName,[in]BSTRstrValue,[in]longlOpt,[out,retval]long*pbool);[id(0x00010045),helpstring("SavepageToDoc")]HRESULTSetPageAs([in]BSTRstrLocalFile,[in]longlPageNum,[in]longlType,[out,retval]long*pbool);----------------------------------------------------------------------------------------------------------------------------------------------------------------------LoadDso.jsvars=""s+=""s+=""document.write(s)----------------------------------------------------------------------------------------------------------------------------------------------------------------------接口文档:/*1.新建*///新建Worddocument.all.FramerControl1.CreateNew("Word.Document");//新建Exceldocument.all.FramerControl1.CreateNew("Excel.Sheet");/*2.打开文件*///打开制定的本地文件document.all.FramerControl1.Open("C:\\TestBook.xls");//制定用Word来打开c:\plain.txt文件document.all.FramerControl1.Open("C:\\Plain.txt",false,"Word.Document");//打开服务器的文件document.all.FramerControl1.Open"https://secureserver/test/mytest.asp?id=123",true,"Excel.Sheet","MyUserAccount","MyPassword");//打开服务器的文件document.all.FramerControl1.Open("http://localhost/1.doc",true);/*3.保存文件*///到本地document.all.FramerControl1.Save("c:\\1.doc",true);//服务器/*增加Http协议Post上传接口,可以Post一个动态页面(jsp,asp,php...),由动态页面负责解析数据boolHttpInit();boolHttpAddPostString(BSTRstrName,BSTRstrValue);boolHttpAddPostCurrFile(BSTRstrFileID,BSTRstrFileName);BSTRHttpPost(BSTRbstr);*///初始化Http引擎document.all.FramerControl1.HttpInit();//增加Post变量document.all.FramerControl1.HttpAddPostString("RecordID","20060102200");document.all.FramerControl1.HttpAddPostString("UserID","李局长");//上传打开的文件document.all.FramerControl1.HttpAddPostCurrFile("FileData","文档名.doc");//执行上传动作document.all.FramerControl1.HttpPost("http://xxxx.com/uploadfile.asp");/*4.修订留痕*///进入留痕状态document.all.FramerControl1.SetTrackRevisions(1);//进入非留痕状态document.all.FramerControl1.SetTrackRevisions(0);//接受当前修订document.all.FramerControl1.SetTrackRevisions(4);/*5.设置当前用户*/document.all.FramerControl1.SetCurrUserName("张三");/*6.设置当前时间(笔迹留痕会显示("Like2006:02:0711:11:11")*/document.all.FramerControl1.SetCurrTime("2006:02:0711:11:11");/*7.设置和创建书签,此功能比较强大,设置书签数据、添加书签和添加红头文件就靠他了SetFieldValue(BSTRstrFieldName,BSTRstrValue,BSTRstrCmdOrSheetName)strFieldName:书签名strValue:要设置的值strCmdOrSheetName:命令::ADDMARK::添加BookMark::DELMARK::删除这个BookMark::GETMARK::定位到这个BookMark::FILE::插入的是文件::JPG::插入的是图片一般来说:WORD中书签是做好的,可以通过此接口把外界数据设置进书签中去。
*///在当前WORD位置插入标签,标签名为"book1",数值为"test"document.all.FramerControl1.SetFieldValue("book1","test","::ADDMARK::");//设置书签"Time",数值为"2006-03-1622:22:22"document.all.FramerControl1.SetFieldValue("Time","2006-03-1622:22:22","");//在书签位置"hongtou",插入红头文件"http://222.222.222.222/hongtou1.doc"这样,红头就自动插进去了document.all.FramerControl1.SetFieldValue("hongtou","http://222.222.222.222/hongtou1.doc","::FILE::");/*8.设置菜单显示情况BOOLSetMenuDisplay(longlMenuFlag)lMenuFlag为以下数值的组合#defineMNU_NEW0x01#defineMNU_OPEN0x02#defineMNU_CLOSE0x04#defineMNU_SAVE0x08#defineMNU_SAVEAS0x16#defineMNU_PGSETUP0x64#defineMNU_PRINT0x256#defineMNU_PROPS0x32#defineMNU_PRINTPV0x126*///只有“新建”菜单可用document.all.FramerControl1..SetMenuDisplay(1);//只有“打开”菜单可用document.all.FramerControl1.SetMenuDisplay(2);//只有“打开”和“新建”菜单可用document.all.FramerControl1.SetMenuDisplay(3);/*9.保护文档和解保护文档lProOrUn:1:保护文档;
0:解除保护lProType:wdNoProtection=-1,wdAllowOnlyRevisions=0,wdAllowOnlyComments=1,wdAllowOnlyFormFields=2strProPWD:密码*///完全保护文档,密码为"pwd"document.all.FramerControl1.ProtectDoc(1,1,"pwd");//解除文档保护document.all.FramerControl1.ProtectDoc(0,1,"pwd");/*10.显示或隐藏修订内容ShowRevisions(longnNewValue)nNewValue=0则隐藏修订=1则显示修订*///显示修订留痕document.all.FramerControl1.ShowRevisions(1);//隐藏修订留痕document.all.FramerControl1.ShowRevisions(0);/*11.插入合并文件,strFieldPath文件路径,可以是http,ftp的路径pPos=0//当前鼠标位置1;文件开头2;文件末尾pPos的第4位为1的时候,代表插入的是图片InSertFile(BSTRstrFieldPath,longlPos)*///文件头部插入文件document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",1);//文件尾部插入文件document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",2);//当前光标位置插入文件document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",0);//文件头部插入图片document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",9);//文件尾部插入图片document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",10);//当前光标位置插入图片document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",8);/*0x31.文档另存为HRESULTSaveAs([in]VARIANTstrFileName,[in]VARIANTdwFileFormat,[out,retval]long*pbool);参数:strFileName:文件本地路径,如c:\\11.docdwFileFormat:文件格式dwFileFormat的数值为:Excel:TypeenumXlFileFormat{xlAddIn=18,xlCSV=6,xlCSVMac=22,xlCSVMSDOS=24,xlCSVWindows=23,xlDBF2=7,xlDBF3=8,xlDBF4=11,xlDIF=9,xlExcel2=16,xlExcel2FarEast=27,xlExcel3=29,xlExcel4=33,xlExcel5=39,xlExcel7=39,xlExcel9795=43,xlExcel4Workbook=35,xlIntlAddIn=26,xlIntlMacro=25,xlWorkbookNormal=-4143,xlSYLK=2,xlTemplate=17,xlCurrentPlatformText=-4158,xlTextMac=19,xlTextMSDOS=21,xlTextPrinter=36,xlTextWindows=20,xlWJ2WD1=14,xlWK1=5,xlWK1ALL=31,xlWK1FMT=30,xlWK3=15,xlWK4=38,xlWK3FM3=32,xlWKS=4,xlWorks2FarEast=28,xlWQ1=34,xlWJ3=40,xlWJ3FJ3=41,xlUnicodeText=42,xlHtml=44};Word:TypeenumWdSaveFormat{wdFormatDocument=0,wdFormatTemplate=1,wdFormatText=2,wdFormatTextLineBreaks=3,wdFormatDOSText=4,wdFormatDOSTextLineBreaks=5,wdFormatRTF=6,wdFormatUnicodeText=7,wdFormatEncodedText=7,wdFormatHTML=8};PPT:enumPpSaveAsFileType{ppSaveAsPresentation=1,ppSaveAsPowerPoint7=2,ppSaveAsPowerPoint4=3,ppSaveAsPowerPoint3=4,ppSaveAsTemplate=5,ppSaveAsRTF=6,ppSaveAsShow=7,ppSaveAsAddIn=8,ppSaveAsPowerPoint4FarEast=10,ppSaveAsDefault=11,ppSaveAsHTML=12,ppSaveAsHTMLv3=13,ppSaveAsHTMLDual=14,ppSaveAsMetaFile=15,ppSaveAsGIF=16,ppSaveAsJPG=17,ppSaveAsPNG=18,ppSaveAsBMP=19};*//*0x32.删除本地文件HRESULTDeleteLocalFile([in]BSTRstrFilePath);参数:strFileName:文件本地路径,如c:\\11.doc*//*0x33.创建临时文件HRESULTGetTempFilePath([out,retval]BSTR*strValue);返回:临时文件的路径地址。
使用完后,用DeleteLocalFile删除*//*0x34.设置文档显示模式HRESULTShowView([in]longdwViewType,[out,retval]long*pbool);dwViewType的可取值为:enumWdViewType{wdNormalView=1,wdOutlineView=2,wdPrintView=3,wdPrintPreview=4,wdMasterView=5,//这个是大纲wdWebView=6};*///大纲模式document.all.FramerControl1.ShowView(5);/*0x39:下载远程文件HRESULTDownloadFile([in]BSTRstrRemoteFile,[in]BSTRstrLocalFile,[out,retval]BSTR*strValue);参数:strRemoteFile:远程路径地址,httporFtpstrLocalFile:本地保存地址,ifstrLocalFile==NULLthenCreateTempFileandreturnTempFile'sPath*//*0x40:增加Http上传时候的,附加其他文件HRESULTHttpAddPostFile([in]BSTRstrFileID,[in]BSTRstrFileName,[out,retval]long*pbool);参数:strFileID:文件的ID,供服务器端页面解析strFileName:本地文件地址*//*0x41,0x42.获取详细的修订信息。
GetRevCount([out,retval]long*pbool);GetRevInfo([in]longlIndex,[in]longlType,[out,retval]BSTR*pbool);例子如下*/varvCount;vCount=document.all.FramerControl1.GetRevCount();alert(vCount);varvOpt=0;varvDate;for(vari=1;i<=vCount;i++){vOpt=document.all.FramerControl1.GetRevInfo(i,2);if("1"==vOpt){vOpt="插入";}elseif("2"==vOpt){vOpt="删除";}else{vOpt="未知操作";}vDate=newString(document.all.FramerControl1.GetRevInfo(i,1));vDate=parseFloat(vDate);alert(vDate);dateObj=newDate(vDate);alert(dateObj.getYear()+"年"+dateObj.getMonth()+1+"月"+dateObj.getDate()+"日"+dateObj.getHours()+"时"+dateObj.getMinutes()+"分"+dateObj.getSeconds()+"秒");alert("用户:"+document.all.FramerControl1.GetRevInfo(i,0)+"\r\n操作:"+vOpt+"\r\n内容:"+document.all.FramerControl1.GetRevInfo(i,3));}/*0x43.设置基本信息:HRESULTSetValue([in]BSTRstrValue,[in]BSTRstrName,[out,retval]long*pbool);1.设置文件只读密码SetValue("password","::DOCPROP:PassWord");2.设置文件修改密码SetValue("password","::DOCPROP:WritePW");返回值:0正确-1:不支持此命令,请确定您的第二个参数没有传错-127:异常*///设置文件只读密码document.all.FramerControl1.SetValue("password","::DOCPROP:PassWord");//设置文件修改密码document.all.FramerControl1.SetValue("password","::DOCPROP:WritePW");/*0x44.设置文档变量,这个很少能用到HRESULTSetDocVariable([in]BSTRstrVarName,[in]BSTRstrValue,[in]longlOpt,[out,retval]long*pbool);strVarName:变量名strVlaue:变量值lOpt:操作类型,按位第一位为1:表示update域关联的第二位为1:表示如果没有这个变量则添加第三位为1:未来支持return:0:OK-127:异常*//*0x45:分页保存HRESULTSetPageAs([in]BSTRstrLocalFile,[in]longlPageNum,[in]longlType,[out,retval]long*pbool);strLocalFile:本地路径lPageNum:页数*/
2025/6/13 12:22:57 139KB web office word 在线
1
操作者框架是一个支持多个相互通信的独立VI的软件库。
在应用中,每个VI都是系统中某个操作者的一个独立任务。
操作者可以记录自身状态,可以向其他操作者发送消息。
创建这种应用程序,用到了LabVIEW中的许多技术。
操作者框架易于学习(相对于其他可能更强大的工具),降低了死锁、竞争的风险,最大限度的提高了代码重用度。
2025/6/13 1:15:18 202KB labview 操作者框架 OOP 面向对象
1
PotPlayer是一款优秀的高清视频播放器,它的前身是著名的KMPlayer。
此包把各项设置优化到最优状态,安装后,无需设置,封装了几款比较精简的皮肤。
1
物资管理是企业管理非常重要的一环,它对企业的发展起着非常举足轻重的作用。
由于物资的种类繁多,在各部门进出频繁,使得物资管理变得十分复杂。
开发一套完善的物资管理系统不但可以使物资的管理者,能够对物资的整个流程状态、库存状况了如指掌,并为决策管理提供科学依据,从而提高了管理水平和工作效率,而且可以使工作人员甩掉手工记账方式,从而最大限度地减少了手工操作带来的失误,达到事半功倍的效果。
物资管理系统作为企业管理自动化、规范化的一部分,对提高企业管理效率、提高企业经济效益发挥不可替代的作用
2025/6/11 18:10:25 11.57MB 物资管理系统
1
顾名思义,它是一个用来编辑字节码的简单的小工具,使用场景:*某些全局控制开关(可能是一个Boolean类型的全局变量),由于没有配置在配置文件,但是急需修改其开关状态;
*由于没有对某段代码进行trycatch,导致运行时异常,程序假死/退出,需要马上捕获异常;
*方法内某段代码逻辑有问题,需要修改;
*急需打印某些对象;
*急需监控某方法/代码的执行时间*其他……
1
我们建立了在(n+1)个粒子量子状态下量子不和谐与量子密度编码能力之间的关系。
给出了消除不和谐一夫一妻制分数的必要条件。
我们还发现,由于退相干引起的量子密集编码能力的损失在下面受量子不和之和的限制。
当这些结果限于三粒子量子态时,可以获得一些互补关系。
2025/6/10 1:05:55 178KB quantum discord; quantum dense
1
这次的HCIP-RSRouting&Switching方向的认证课程,主要的技术领域集中在路由和交换技术,当然也包括了更多其它网络技术领域。
而课程的技术内容也是集中在了中小型企业网络与园区网络的规划。
安德讲师为我们全新授课,全新改变升级和更名的HCIP认证,课程内容也是非常丰富,分集的课程数量也超过了100多集,还有相关课程的文档、题库、实验、及考试题库的讲解,适合学习、备考以及进军HCIE前的知识储备├─【07】HCIP(HCNP)数通路由交换必备工具.zip(1)\【001】HCNPHCIP数通路由交换理论;
目录中文件数:110个├─【001】HCIP-OSPF基础知识.avi├─【002】HCIP-OSPF进程和接口基本配置.avi├─【003】HCIP-多区域的OSPF和路由器ID.avi├─【004】HCIP-OSPF报文类型和基本的LSA.avi├─【005】HCIP-OSPF邻居和邻接关系排障.avi├─【006】HCIP-OSPF邻居和邻接关系排障.avi├─【007】HCIP--OSPF邻居排障.avi├─【008】HCIP-OSPF的网络类型1.avi├─【009】HCIP--OSPF邻居状态机.avi├─【010】HCIP-OSPF的LSA详解1.avi├─【011】HCIP-OSPF的LSA详解2.avi├─【012】HCIP-OSPF的域间路由计算.avi├─【013】HCIP-OSPF的外部路由计算.mp4├─【014】HCIP-MA网络的优化.avi├─【015】HCIP-ASBR的汇总和不同进程的重分.avi├─【016】HCIP-特殊区域之末节区域.avi├─【017】HCIP-OSPF特殊区域之NSSA.avi├─【018】HCIP-认识中间系统协议.avi├─【019】HCIP-中间系统网络实体标题和基本配置.avi├─【020】HCIP-中间系统路由器类型.avi├─【021】HCIP-中间系统报文类型和网络类型.avi├─【022】HCIP--中间系统邻居关系建立和电路调整.avi├─【023】HCIP--中间系统邻居关系和3次握手.avi├─【024】HCIP-中间系统知识串讲.avi├─【025】HCIP-中间系统的LSP交互.avi├─【026】HCIP--基本的中间系统路由泄露.avi├─【027】HCIP-中间系统的收敛.avi├─【028】HCIP-BGP的基本特征.avi├─【029】HCIP-建立基本的iBGP和eBGP.avi├─【030】HCIP--BGP通告原则第一部分.avi├─【031】HCIP--BGP的下一跳和通告原则第二部分.avi├─【032】HCIP-BGP通告原则第三部分.avi├─【033】HCIP-BGP自动汇总.avi├─【034】HCIP--BGP的手工聚合.avi├─【035】HCIP--BGP的手工聚合续集.avi├─【036】HCIP--BGP的路由属性.avi├─【037】HCIP--华为设备BGP选路原则1.avi├─【038】HCIP-华为设备BGP选路原则2.avi├─【039】HCIP-华为设备BGP选路原则3.avi├─【040】HCIP-华为设备BGP团体属性1.avi├─【041】HCIP-华为设备BGP团体属性2.avi├─【042】HCIP-华为设备BGP路由反射器.avi├─【043】HCIP-华为设备BGP的联邦.avi├─【044】HCIP-华为设备路由控制基础.avi├─【045】HCIP-华为设备路由控制实验和本质.avi├─【046】HCIP-华为设备通过路由策略解决次优路由.avi├─【047】HCIP-华为设备路由环路实验和方案.avi├─【048】HCIP--前缀列表和实验.avi├─【049】HCIP-华为设备实现route-policy和路由过滤.avi├─【050】HCIP--华为设备路由过滤.avi├─【051】HCIP-华为设备通过修改优先级解决次优路由.avi├─【052】HCIP--华为设备修改AD以及默认路由分析.avi├─【053】HCIP-策略路由.avi├─【054】HCIP-华为MPLS技术基础.avi├─【055】HCIP--华为MPLS技术架构和基本配置.avi├─【056】HCIP-华为设备MPLS回顾和架构.a
2025/6/10 1:05:57 75B HCIP 华为HCIP培训视频
1
SystemInformationGathererAndReporter,系统信息收集和报表工具。
一个开源的工具,提供了跨平台的系统信息收集的API,通过它可以获取包括:1.操作系统的信息,包括:dataModel、cpuEndian、name、version、arch、machine、description、patchLevel、vendor、vendorVersion、vendorName、vendorCodeName2.CPU信息,包括:基本信息(vendor、model、mhz、cacheSize)和统计信息(user、sys、idle、nice、wait)3.内存信息,物理内存和交换内存的总数、使用数、剩余数;
RAM的大小4.进程信息,包括每个进程的内存、CPU占用数、状态、参数、句柄等。
5.文件系统信息,包括名称、容量、剩余数、使用数、分区类型等6.网络接口信息,包括基本信息和统计信息。
7.网络路由和链接表信息。
支持多种操作系统,底层接口用C编写。
2025/6/9 3:15:39 3.18MB Sigar
1
GSM呼叫流程图移动台的呼入接续过程:1、寻呼。
MSC/VLR在数据库中查出用户的资料并向相关的BSC发送寻呼信息。
该信息包含用户所在区域的LAI和用户的IMSI或者TMSI。
2、寻呼命令。
BSC向LA区内的所有BTS发出寻呼命令。
该信息包含IMSI或TMSI。
收发信单元识别码、信道类型和时隙号。
3、寻呼请求。
BTS在PCH上向移动台发送寻呼信息。
该信息包含用户的IMSI或TMSI。
4、信道请求。
被寻呼的移动台在RACH上发送一个短的接入脉冲串至BTS。
BTS接收该寻呼响应信号后记录该突发脉冲串的迟滞值。
(TA动态PWR)5、信道请求。
BTS向BSC发信道请求信息。
该信息还包含移动台接入系统的迟滞值(TA.PWR)。
6、信道激活。
BSC选择一条空闲的SDCCH并指示BTS激活该信道。
7、信道激活证实。
BTS激活SDCCH后向BSC发信道激活证实信息。
8、立即分配。
BSC透过BTS经由AGCH向移动台发出允许接入系统信息。
该信息包含频率、时隙号、SDCCH信道号和移动台将要使用的时间提前值TA等。
9、寻呼响应。
移动台通过SDCCH向BSC发寻呼响应信息。
该信息包含移动台的IMSI或TMSI和移动台的等级标记,BSC加入CGI后把信息送往MSC/VLR。
10、鉴权请求。
MSC/VLR透过BSC、BTS向移动台发鉴权请求,其中包含随机数RAND,用移动台的鉴权运算。
11、鉴权响应。
移动台经鉴权计算后向MSC/VLR发回鉴权响应信息,MSC/VLR检查用户全法性,如用户全法,则开始启动加密程序。
12、加密模式命令。
MSC/VLR通过BSC、BTS向移动用户发加密模式命令。
该命令在SDCCH上传送。
13、加密模式完成。
移动台进行加密运算后向BTS发出已加密的特定信号,BTS解密成功后透过BSC向MSC/VLR发加密模式完成信息。
14、设置呼叫类型。
MSC向移动台发送呼叫类型设置信息。
该信息包含该次呼叫的类型。
如传真、通话或数据通信等类型。
15、呼叫类型证实。
移动台设置好呼叫类型后向MSC发出呼叫类型证实信息。
16、分配请求。
MSC要求BSC选择一条通往移动台的话音信道,同时MSC在一条通往BSC的PCM上选择一个空闲时隙,并把时隙的电路识别码CIC送往BSC。
17、信道激活。
如果BSC发现某小区上有一条空闲的TCH,它将向BTS发送信道激活命令。
18、信道激活证实。
BTS激活TCH后向BSC发回信道激活证实信息。
19、分配命令。
BSC通过SDCCH向移动台发信道切换指令,命令移动台切换至所指定的TCH。
20、分配完成。
移动台切换至所指定的TCH后向BSC发送信道分配完成信息,BSC接收后再送往MSC/VLR。
21、无线频率信道释放/释放证实。
BSC释放SDCCH信道并把它标记为空闲状态。
22、振铃回应。
当移动台开始振铃时移动台要向MSC发送一个通知信息。
23、连接。
当移动台摘机应答时,移动台向MSC发送一个连接信息,MSC把移动台的电路接通,开始通话。
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡