- 浏览: 25239 次
- 性别:
- 来自: 深圳
文章分类
最新评论
1. SSO需求
单点登录(Single Sign On, SSO)是企业应用集成中最常见的需求。异构系统间往往都有各自的用户管理和身份验证机制,为
避免用户在进行系统切换时频繁输入用户名和密码,因此必须要实现单点登录。
2. SSO原理
说到SSO的原理,先得说一般Web应用的身份验证原理。Web身份验证之所以能成为问题主要在于HTTP协议的无状态性,这导
致了每次HTTP的请求和响应的无关性。而应用的状态保持是大部分应用系统的一般性需求,因此必须借助其他机制,这就是Cookie。
2.1. Cookie的原理
一个Cookie由name、value、domain、path、expires组成。可以给HTTP响应添加Cookie,然后Cookie就作为HTTP响应的
Headers返回给浏览器,例如Domino的登录成功后的Cookie响应头为:
Set-Cookie: DomAuthSessId=1AD479C4D11CD10278A4C523320A6918; path=/
没有设置expires就表示仅在当前浏览器进程生命期内有效,不保存到客户机上;若expires时间大于当前时间,则浏览器在收到
这个 Cookie以后将其写入到客户机文件中,一般是保存在C:\Documents and Settings\Administrator\Cookies\下。
没有设置domain就表示只在当前域内有效。
当客户机再次请求该域内的其他资源时,浏览器会自动将该域内的Cookie附在请求的Headers一起发送给Web服务器,形如:
Cookie: DomAuthSessId=1AD479C4D11CD10278A4C523320A6918
如此Web应用就能够通过读取HTTP请求Headers里面的Cookie值来判断用户身份,这样也就间接实现了HTTP的状态保持需
求。
2.2. SSO原理
了解的Cookie的原理以后就不难理解SSO的原理了。SSO的目的是为了实现两个或多个应用系统间的单点登录,其实现手段无
非是在登录A系统的 同时自动登录到B系统、C系统……,结合Cookie也就是说在SSO登录时同时去A系统、B系统、C系统进行验证,并将来自各系统的Cookie返回给 浏览器,就是这么简单。
一般情况下,做SSO要统一登录界面,这可以通过将各应用系统的登录界面重定向到指定的登录页来实现。
2.3. Cookie的局限
如果仅仅如上所说这么简单,那也就不会创造什么SSO的概念了。问题出在Cookie的domain上。出于浏览器安全的考虑,HTTP响应 Headers中的Cookie的domain只有与HTTP请求域(a.abc.com)一致或为上级域(abc.com)时,Cookie才能生效。
也就是说:
若A、B系统域名分别为a.abc.com和b.abc.com,登录系统A,同时写来自两个系统的Cookie到浏览器,且Cookie的domain设为.abc.com,那么浏览器是可以接受的,SSO成功。
若A、B系统域名分别为a.abc.com和b.xyz.com,登录系统A,同时写来自两个系统的Cookie到浏览器,其中A Cookie的domain设为.abc.com,B Cookie的domain设为.xyz.com,那么浏览器是不可以接受B Cookie的,因为该HTTP请求是来自.abc.com,因此不能写.xyz.com域中的Cookie。
这也就是跨域SSO难题的原因所在。
2.4. 跨域SSO
了解了Cookie的局限和跨域SSO难题所在,也就不难找到解决跨域问题的办法了:由各应用系统中创建各自域的Cookie并返回给浏览器。不要幻想在一个应用中创建所有域的Cookie,这是徒劳的。
至于如何一次性在各应用系统中创建各自域的Cookie并返回给浏览器,这就仁者见仁智者见智了,一般常见的做法是:
在SSO验证成功的返回页中利用JS脚本动态创建隐藏的IFRAME,并将验证信息通过IFRAME的SRC属性的URL参数传递给各应用系统的某 个资源,这些资源可以是动态程序也可以是JS脚本,由各应用系统的动态程序或JS脚本根据传入的参数来完成该应用的验证过程并返回验证通过的 Cookie。
下文说的做法与上略有不同,我的想法是:只在请求哪个应用系统时才进行哪个应用系统的身份验证,而不是一次性全将所有身份都验证完毕。
3. Domino SSO 实现
Domino 的用户信息和身份验证是通过目录(NAMES.NSF )来实现的;J2EE 系统也往往有自己开发的用户管理和身份验证机制。要实现二者的SSO ,可以通过部署统一的身份认证应用来完成。
要部署唯一的SSO 应用有三个选择:
l 扩展Domino 的身份认证功能,提供SSO 服务;
l 扩展J2EE 系统的身份认证功能,提供SSO 服务;
l 部署单独的SSO 应用,提供SSO 服务;
Domino 的身份认证在names.nsf 中进行,登录界面在domcfg.nsf 中,通过提交包含用户名(username )和密码(password )的请求到路径/names.nsf?Login 即可完成验证过程。但Domino 验证是通过其内在机制实现的,没有给开发者提供任何显示的程序代码(如何进行用户名和口令校验的代码),因此无法对Domino 的验证过程直接进行扩展。
J2EE 系统本身的用户管理和身份认证往往都由我们自行设计的,因此可以在此基础上扩展实现单点登录,我们这里采用的即是这种方案。
此外,也可以开发单独的SSO 应用,集成Domino 和J2EE 系统登录过程,本质上与在J2EE 系统基础上扩展没有区别,这里不再赘述。
3.1. Domino Cookie
前面已经提过SSO 的原理就是Cookie ,所以有必要了解Domino 系统的Cookie 。
Domino 系统根据服务器配置的不同有两种Cookie 来进行会话状态的维持。
l 单服务器,服务器返回给浏览器的Cookie 名是:DomAuthSessId 。
l 多个服务器(SSO ),服务器返回给浏览器的Cookie 名是:LtpaToken ,这是IBM 一套轻量级第三方认证标准,自动支持Websphere 和Lotus 之间的SSO 。
3.2. Domino系统设置
1. 配置Domino 的登录页
用Notes 打开domcfg.nsf 数据库,打开”Sign In Form Mapping “配置文档,设置登录页为domcfg.nsf 里的SSOLoginForm 表单。
2. 将Domino 登录页重定向到J2EE
用Designer 打开domcfg.nsf\SSOLoginForm ,通过脚本将其重定向到SSO 登录页:
js 代码
<script language=”javascript”>
parent.location.href = “http://www.j2ee.com/loginAction.do?method=login&redirectTo=< 计算文本>”;
</script>
其中该计算文本为RedirectTo 值,记录用户原始请求的DominoURL 。
3.3. J2EE系统SSO开发
3.3.1. SSO 登录界面
在SSO登录表单中,除了必要的用户名和口令输入框之外,还应有一个属性redirectTo来记录登录后的重定向路径。当用户访问某个受限资源时,系统自动重定向到该登录界面,同时记录该受限资源的路径,当输入用户名和口令并验证成功以后,系统自动将用户重定向到该受限资源处,而不是简单的返回到缺省首页。
3.3.2. SSO 验证程序
J2EE 系统自身的验证还是才有传统的用户名和口令校验方式。当检查来自客户端的访问请求是去往Domino 系统时,将自动进行Domino 的验证并重定向到相应的Domino 页面。自动Domino 验证分为两个步骤:
1. 程序自动从服务器后台通过Http URLConnection 访问Domino 系统并登录,若验证通过则读取相应的Cookie 值;
单服务器的form-based 方式验证获取Cookie 及重定向URL 代码如下:
java 代码
URL url = new URL(httpHost + “names.nsf?Login”);
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(urlConnection.getOutputStream());
wr.write(”username=” + userName + “&password=” + password);
wr.flush();
wr.close();
urlConnection.connect();
Map
for (Iterator<string> it = headerFields.keySet().iterator(); it.hasNext(); ) { </string>
String key = it.next();
if (key != null && key.equals(”Set-Cookie”)) {
String value = urlConnection.getHeaderField(key);
String[] cookies = value.split(”;\\s*”);
for (int i = 0; i < cookies.length; i++) {
String[] cookie = cookies[i].trim().split(”=”);
if (cookie[0].equals(”DomAuthSessId”)) {
successful = true;
loginURL = httpHost + “domcfg.nsf/SSOLoginAction?OpenAgent”;
loginURL += “&cookeName=DomAuthSessId”;
loginURL += “&cookeValue=” + cookie[1];
break;
}
}
}
}
urlConnection.disconnect();
多服务器(SSO )方式获取Cookie 及重定向URL 代码如下:
java 代码
Session session = NotesFactory.createSession(serverName, userName, password);
if (session != null && session.isValid()) {
successful = true;
loginURL = httpHost + “domcfg.nsf/SSOLoginAction?OpenAgent”;
loginURL += “&cookeName=LtpaToken”;
loginURL += “&cookeValue=” + URLEncoder.encode(session.getSessionToken(), “UTF-8″);
}
2. 程序将获取的Cookie 名称、Cookie 值以及目的资源地址通过URL 参数的方式传给一个Domino 的代理(也即上述代码中的变量loginURL ),由Domino 代理写Cookie 并重定到向目的资源地址。Domino 代理SSOLoginAction 也非常简单,代码示意如下:
Domino 代码
cookieName$ = request.GetParameter(”cookeName”)
cookieValue$ = request.GetParameter(”cookeValue”)
redirectTo$ = request.GetParameter(”redirectTo”)
Print {Set-Cookie:} + cookieName$ + {=} + cookieValue$ + {; path=/}
Print {Location: } + redirectTo$ + {}
其中request.GetParameter 是自定义类方法,用以获取URL 中的参数值。
如此,J2EE 与Domino 系统间的跨域SSO 就顺利实现J
单点登录(Single Sign On, SSO)是企业应用集成中最常见的需求。异构系统间往往都有各自的用户管理和身份验证机制,为
避免用户在进行系统切换时频繁输入用户名和密码,因此必须要实现单点登录。
2. SSO原理
说到SSO的原理,先得说一般Web应用的身份验证原理。Web身份验证之所以能成为问题主要在于HTTP协议的无状态性,这导
致了每次HTTP的请求和响应的无关性。而应用的状态保持是大部分应用系统的一般性需求,因此必须借助其他机制,这就是Cookie。
2.1. Cookie的原理
一个Cookie由name、value、domain、path、expires组成。可以给HTTP响应添加Cookie,然后Cookie就作为HTTP响应的
Headers返回给浏览器,例如Domino的登录成功后的Cookie响应头为:
Set-Cookie: DomAuthSessId=1AD479C4D11CD10278A4C523320A6918; path=/
没有设置expires就表示仅在当前浏览器进程生命期内有效,不保存到客户机上;若expires时间大于当前时间,则浏览器在收到
这个 Cookie以后将其写入到客户机文件中,一般是保存在C:\Documents and Settings\Administrator\Cookies\下。
没有设置domain就表示只在当前域内有效。
当客户机再次请求该域内的其他资源时,浏览器会自动将该域内的Cookie附在请求的Headers一起发送给Web服务器,形如:
Cookie: DomAuthSessId=1AD479C4D11CD10278A4C523320A6918
如此Web应用就能够通过读取HTTP请求Headers里面的Cookie值来判断用户身份,这样也就间接实现了HTTP的状态保持需
求。
2.2. SSO原理
了解的Cookie的原理以后就不难理解SSO的原理了。SSO的目的是为了实现两个或多个应用系统间的单点登录,其实现手段无
非是在登录A系统的 同时自动登录到B系统、C系统……,结合Cookie也就是说在SSO登录时同时去A系统、B系统、C系统进行验证,并将来自各系统的Cookie返回给 浏览器,就是这么简单。
一般情况下,做SSO要统一登录界面,这可以通过将各应用系统的登录界面重定向到指定的登录页来实现。
2.3. Cookie的局限
如果仅仅如上所说这么简单,那也就不会创造什么SSO的概念了。问题出在Cookie的domain上。出于浏览器安全的考虑,HTTP响应 Headers中的Cookie的domain只有与HTTP请求域(a.abc.com)一致或为上级域(abc.com)时,Cookie才能生效。
也就是说:
若A、B系统域名分别为a.abc.com和b.abc.com,登录系统A,同时写来自两个系统的Cookie到浏览器,且Cookie的domain设为.abc.com,那么浏览器是可以接受的,SSO成功。
若A、B系统域名分别为a.abc.com和b.xyz.com,登录系统A,同时写来自两个系统的Cookie到浏览器,其中A Cookie的domain设为.abc.com,B Cookie的domain设为.xyz.com,那么浏览器是不可以接受B Cookie的,因为该HTTP请求是来自.abc.com,因此不能写.xyz.com域中的Cookie。
这也就是跨域SSO难题的原因所在。
2.4. 跨域SSO
了解了Cookie的局限和跨域SSO难题所在,也就不难找到解决跨域问题的办法了:由各应用系统中创建各自域的Cookie并返回给浏览器。不要幻想在一个应用中创建所有域的Cookie,这是徒劳的。
至于如何一次性在各应用系统中创建各自域的Cookie并返回给浏览器,这就仁者见仁智者见智了,一般常见的做法是:
在SSO验证成功的返回页中利用JS脚本动态创建隐藏的IFRAME,并将验证信息通过IFRAME的SRC属性的URL参数传递给各应用系统的某 个资源,这些资源可以是动态程序也可以是JS脚本,由各应用系统的动态程序或JS脚本根据传入的参数来完成该应用的验证过程并返回验证通过的 Cookie。
下文说的做法与上略有不同,我的想法是:只在请求哪个应用系统时才进行哪个应用系统的身份验证,而不是一次性全将所有身份都验证完毕。
3. Domino SSO 实现
Domino 的用户信息和身份验证是通过目录(NAMES.NSF )来实现的;J2EE 系统也往往有自己开发的用户管理和身份验证机制。要实现二者的SSO ,可以通过部署统一的身份认证应用来完成。
要部署唯一的SSO 应用有三个选择:
l 扩展Domino 的身份认证功能,提供SSO 服务;
l 扩展J2EE 系统的身份认证功能,提供SSO 服务;
l 部署单独的SSO 应用,提供SSO 服务;
Domino 的身份认证在names.nsf 中进行,登录界面在domcfg.nsf 中,通过提交包含用户名(username )和密码(password )的请求到路径/names.nsf?Login 即可完成验证过程。但Domino 验证是通过其内在机制实现的,没有给开发者提供任何显示的程序代码(如何进行用户名和口令校验的代码),因此无法对Domino 的验证过程直接进行扩展。
J2EE 系统本身的用户管理和身份认证往往都由我们自行设计的,因此可以在此基础上扩展实现单点登录,我们这里采用的即是这种方案。
此外,也可以开发单独的SSO 应用,集成Domino 和J2EE 系统登录过程,本质上与在J2EE 系统基础上扩展没有区别,这里不再赘述。
3.1. Domino Cookie
前面已经提过SSO 的原理就是Cookie ,所以有必要了解Domino 系统的Cookie 。
Domino 系统根据服务器配置的不同有两种Cookie 来进行会话状态的维持。
l 单服务器,服务器返回给浏览器的Cookie 名是:DomAuthSessId 。
l 多个服务器(SSO ),服务器返回给浏览器的Cookie 名是:LtpaToken ,这是IBM 一套轻量级第三方认证标准,自动支持Websphere 和Lotus 之间的SSO 。
3.2. Domino系统设置
1. 配置Domino 的登录页
用Notes 打开domcfg.nsf 数据库,打开”Sign In Form Mapping “配置文档,设置登录页为domcfg.nsf 里的SSOLoginForm 表单。
2. 将Domino 登录页重定向到J2EE
用Designer 打开domcfg.nsf\SSOLoginForm ,通过脚本将其重定向到SSO 登录页:
js 代码
<script language=”javascript”>
parent.location.href = “http://www.j2ee.com/loginAction.do?method=login&redirectTo=< 计算文本>”;
</script>
其中该计算文本为RedirectTo 值,记录用户原始请求的DominoURL 。
3.3. J2EE系统SSO开发
3.3.1. SSO 登录界面
在SSO登录表单中,除了必要的用户名和口令输入框之外,还应有一个属性redirectTo来记录登录后的重定向路径。当用户访问某个受限资源时,系统自动重定向到该登录界面,同时记录该受限资源的路径,当输入用户名和口令并验证成功以后,系统自动将用户重定向到该受限资源处,而不是简单的返回到缺省首页。
3.3.2. SSO 验证程序
J2EE 系统自身的验证还是才有传统的用户名和口令校验方式。当检查来自客户端的访问请求是去往Domino 系统时,将自动进行Domino 的验证并重定向到相应的Domino 页面。自动Domino 验证分为两个步骤:
1. 程序自动从服务器后台通过Http URLConnection 访问Domino 系统并登录,若验证通过则读取相应的Cookie 值;
单服务器的form-based 方式验证获取Cookie 及重定向URL 代码如下:
java 代码
URL url = new URL(httpHost + “names.nsf?Login”);
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(urlConnection.getOutputStream());
wr.write(”username=” + userName + “&password=” + password);
wr.flush();
wr.close();
urlConnection.connect();
Map
for (Iterator<string> it = headerFields.keySet().iterator(); it.hasNext(); ) { </string>
String key = it.next();
if (key != null && key.equals(”Set-Cookie”)) {
String value = urlConnection.getHeaderField(key);
String[] cookies = value.split(”;\\s*”);
for (int i = 0; i < cookies.length; i++) {
String[] cookie = cookies[i].trim().split(”=”);
if (cookie[0].equals(”DomAuthSessId”)) {
successful = true;
loginURL = httpHost + “domcfg.nsf/SSOLoginAction?OpenAgent”;
loginURL += “&cookeName=DomAuthSessId”;
loginURL += “&cookeValue=” + cookie[1];
break;
}
}
}
}
urlConnection.disconnect();
多服务器(SSO )方式获取Cookie 及重定向URL 代码如下:
java 代码
Session session = NotesFactory.createSession(serverName, userName, password);
if (session != null && session.isValid()) {
successful = true;
loginURL = httpHost + “domcfg.nsf/SSOLoginAction?OpenAgent”;
loginURL += “&cookeName=LtpaToken”;
loginURL += “&cookeValue=” + URLEncoder.encode(session.getSessionToken(), “UTF-8″);
}
2. 程序将获取的Cookie 名称、Cookie 值以及目的资源地址通过URL 参数的方式传给一个Domino 的代理(也即上述代码中的变量loginURL ),由Domino 代理写Cookie 并重定到向目的资源地址。Domino 代理SSOLoginAction 也非常简单,代码示意如下:
Domino 代码
cookieName$ = request.GetParameter(”cookeName”)
cookieValue$ = request.GetParameter(”cookeValue”)
redirectTo$ = request.GetParameter(”redirectTo”)
Print {Set-Cookie:} + cookieName$ + {=} + cookieValue$ + {; path=/}
Print {Location: } + redirectTo$ + {}
其中request.GetParameter 是自定义类方法,用以获取URL 中的参数值。
如此,J2EE 与Domino 系统间的跨域SSO 就顺利实现J
发表评论
-
浏览器debug
2012-03-29 17:57 0一般在调试的页面javascript错误的时候,大家都比较喜欢 ... -
window.location.href跳转
2011-11-28 13:59 1008"window.location.href" ... -
正则表达式
2011-09-02 14:01 564几种基本的数字正则表达式[转] 只能输入1个数字 表 ... -
超链接问题
2010-12-11 13:17 763今天在试用WebQQ的时候 ... -
display乱码
2010-02-05 11:44 957Display Tag Lib是一个标签库,用来处理jsp网页 ... -
spring学习
2010-02-02 16:43 840最近研究Spring,她包含 ... -
SSH 框架整合
2010-02-02 14:19 826添加顺序:Struts框架,S ... -
java.lang.outOfMemoryError,java.lang.outOfMemoryError
2009-12-10 13:55 1438tomcat服务器运行一段时 ... -
spring 数据源的配置
2009-12-09 11:11 984配置一个数据源 Spring在第三方依赖包中包含了 ... -
软件开发者面试百问
2009-02-25 10:41 707软件开发者面试百问 想雇到搞软件开发的聪明人可不容易。 ... -
struts 2.o struts.xml 配置
2008-08-18 10:14 1037<?xml version="1.0" ... -
Display Tag使用小记
2008-04-28 18:01 939用了一段时间的Dis ... -
sql
2007-12-20 15:37 699一、基础 1、说明:创建数据库 CREATE DATABAS ... -
在启动程序时得到javax.servlet.ServletException: Cannot find FacesC
2007-05-08 11:42 2176在启动程序时得到javax.servlet.Servle ...
相关推荐
内容概要:本文档介绍了航空公司的业务分析案例研究,涵盖两个主要部分:a) 使用SSIS进行数据转换,b) 利用RapidMiner进行预测分析。这两个任务旨在通过改善客户满意度来优化业务运营。数据来源包括多个CSV文件,如flight_1.csv、flight_2.csv、type.csv、customer.csv 和 address.csv。第一部分要求学生创建事实表、客户维度表和时间维度表,并描述整个数据转换流程。第二部分则需要利用RapidMiner开发两种不同的模型(如决策树和逻辑回归)来预测客户满意度,并完成详细的报告,其中包括执行摘要、预测分析过程、重要变量解释、分类结果、改进建议和伦理问题讨论。 适合人群:适用于对数据科学和商业分析有一定基础的学生或专业人士。 使用场景及目标:本案例研究用于教学和评估,帮助学员掌握数据转换和预测建模的技术方法,提高客户满意度和业务绩效。目标是通过实际操作加深对相关工具和技术的理解,并能够将其应用于实际业务中。 其他说明:此作业占总评的40%,截止时间为2024年10月25日16:00。
一、课题介绍 现在我国尤其是北方城市,工业发达,废弃排放严重,这使得雾霾越来越厉害,让能见度极低。这严重影响了我们的交通系统,导航系统,卫星定位系统等,给人民出行,工作带来极大的不便利。目前市场上高清拍摄设备虽然可以让成像清晰点,但是造价高昂。如果有一套软件处理系统,可以实时地处理含雾的图像,让成像去雾化,让图像变得清晰,将会很受欢迎。 该课题是基于MATLAB平台的图像去雾处理,配备一个人机交互GUI界面,可以选择全局直方图均衡化,Retinex算法,同态滤波,通过对比处理前后的图像的直方图,而直方图是一副图像各灰度值在0-256的分布个数的表,信息论已经整明,具有均匀分布直方图的图像,其信息量是最大的。 二、算法介绍 ①全局直方图均衡化:通俗地理解就是,不管三七二十一,直接强行对彩色图像的R,G,B三通道颜色进行histeq均衡处理,然后进行三通道重组; ②Retinex算法:通俗地讲就是,分离R,G,B三通道,对每个通道进行卷积滤波。
微信支付V2版本的支付接口,java的SDK
一款IDEA好用的插件,适用于旗舰版,可以延长试用期限,你懂的!
内容概要:本文详细介绍了发电机组保护整定方法,讨论了发电机可能遇到的故障状态及相应的保护措施,包括定子绕组故障、转子绕组故障、过电流、过电压等情况,并提供了具体的保护配置。接着,对变压器常见故障进行了分类说明,并给出变压器的主保护和后备保护配置方案。文章进一步计算了不同短路点的短路电流,阐述了互感器的选择标准,并举例解释了纵联保护的应用和后备保护的作用。 适合人群:电力系统工程师、继电保护技术人员及相关研究领域的学者。 使用场景及目标:适用于发电厂和变电站的设计、维护和运行人员,旨在提高电力系统的安全性和稳定性。目标是确保电力系统关键设备的安全运行,防止故障的发生,减少事故造成的损失。 其他说明:本文不仅提供了详细的理论分析,还包括了大量的数据计算和实例说明,有助于读者更好地理解和掌握继电保护的相关知识和技术。
基于C++开发的微商系统项目源码 使用技术:C++/Qt、Mysql、TCP/IP 软件架构 三个大端:服务端、客户端(买家端)、业务端(卖家端) PS:需要连Mysql数据库才能正常使用,连接mysql时记得把用户、密码啥的改为自己的数据库信息
1503ANDH1503002016_20241116222825
数理逻辑近世代数复习资料,思维导图部分
京东中台业务架构敏捷性方法 MotriDSP 落地实践.pdf
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
CCF会员复习资料(1).zip
ASP.NET养老院老人信息管理系统源码 这是一款非常优秀的养老院老人信息管理系统。程序功能齐全,可选择性强。 管理员后台: 1、人员信息管理:老人信息管理、管理员信息管理、员工信息管理 2、公寓信息管理:添加公寓楼信息、管理公寓楼信息、添加公寓信息、管理公寓信息 3、公寓安排管理:添加公寓安排、公寓安排管理、缴费管理 4、健康管理信息管理:添加健康管理信息、管理健康管理信息 5、紧急联络人管理 6、意见信息管理 7、公告信息管理:添加公告信息、管理公告信息 8、出入信息管理:请假信息管理、访客记录管理、退住情况 员工后台: 1、人员信息管理:老人信息管理 2、健康管理信息管理:管理健康管理信息 3、紧急联络人管理 4、意见信息管理 5、公告信息管理:管理公告信息 6、出入信息管理:请假信息管理、访客记录管理、退住情况 老人后台: 1、修改个人信息 2、修改登陆密码 3、意见信息管理:发布意见信息、意见信息管理 4、查看公告信息
走向现代化数据分析架构:趋势与挑战.pdf
PHP通用权限管理系统源码 安装说明: 1.把管理系统.sql 导入到MYSQL数据库中,把App/Common/Conf/db.php中的数据库名称,账号密码改成自己的。 2.把程序放在二级目录下,如:http://localhost/xcrm/ 账号 admin 密码admin123 3.请使用IE8以上,或是谷歌浏览器。 4.支持环境php+apache,php版本要大于5.3 注意:删除App下面 Runtime 文件夹;如果Linux服务器,需要分配777权限; 修改config.php数据库连接地址:绝对路径 大家在安装的时候遇到问题 1.页面顶部出现空白一行 解决办法:db.php 要以uft8无BOM格式编码 保存 notepad++ 编辑器里 格式 下 2.乱码问题 解决办法:数据库建表的时候选 uft8-general-ci 编码格式 然后点开 SQL 把1,SQL复制进去,执行就可以了 3、如果程序执行时报错? 解决办法:保存PHP>5.3版本 删除App下面 Runtime 文件夹 使用须知:注释:权限管理,修改完用户所属组之后,
详细介绍及样例数据:https://blog.csdn.net/m0_65541699/article/details/143823092
席卡制作模版会议较多的单位,经常要打印席卡,本模版可以解决燃眉之急
从 0 到 1 构建集群服务质量运营体系降低云成本.pdf
永辉超市的混合云建设与运维.pdf
Java超市订单管理系统源码 运行环境:jdk8(jdk7)+mysql+Eclipse+maven+tomcat7 项目技术:springboot+spring mvc+mybatis+jquery+jsp 注意事项:1.所有模块没有实现查看,编辑,删除,添加功能 2.压缩包中的建库smbms.sql是mysql5.7的语句,其中datetime比较特殊,在低版本mysql下会报错
基于MATLAB语言的支持向量机(svm)分类算法的机器视觉程序,里面包含训练数据集和MATLAB源码,下载即可运行,可做毕业设计。