利用WSS搭建学生作业平台

这是我以前写过的一个文档,现在与大家分享下:

我们将需要以下几点步骤:

部署相应的环境

WSS服务器上创建相应的网站并添加相应功能模块

创建相应的管理人员与用户并赋予相应的权限

测试部署成果

1.部署相应的环境

本次搭建环境是在一个域名为hongda.com的环境下实施,规划图如下:

 

由于本次项目是为WSS服务器的搭建做分析,因此与本次项目无关的服务器将不再阐述,项目所使用到的设备是一台DC域控制器(DNS服务器)、一台WSS服务器、一台路由器(防火墙)和一台客户端PC机;

服务器

操作系统

FQDN

IP地址

服务项目

DC域控制器

Windows2008

guangzhou.hongda.com

10.10.0.10

Activate Directory活动目录、DNS

WSS服务器

Windows2008

hongda-DMZ2.hongda.com

10.10.0.14

Windows SharePoint Services3.0

路由器

Windows2008 R2

hongda-RAS.hongda.com

10.10.0.1

202.100.0.1

路由与远程访问、DHCPVPN

客户端PC

Windows7

hongda-CL1.hongda.com

10.10.0.23(DHCP自动分配)

客户端PC(非域成员)

Windows7

ISP分配

通过VPN连接

1.1安装WSS3.0Windows SharePoint Services3.0

“服务器管理器”中,添加角色WEB服务器”,在“选择角色服务”对话框中,选中ASP.NET ASP复选框。

安装完成后,在运行“添加功能向导”,在“选择功能”对话框中选中.NET Framework 3.0”和“SMTP服务器”复选框。

安装WSS3.0,运行已下载的WSS3.0的安装程序SharePointsp2,在“选择所需的安装”对话框,选择“高级”,在“服务器类型”对话框中,选择“独立”。单击“立即安装”按钮。开始安装WSS, 完成后单击“关闭”按钮,启动“Sharepoint产品和技术配置向导”,用来配置WSS。开始配置sharepoint,这里共有10项配置任务。

登录WSS,在“连接到”对话框,输入管理员帐号和密码。

2.创建网站

打开“网站设置”窗口,单击“网站和工作区”超链接,单击“创建”按钮,在“新建sharepoint网站”窗口,在标题栏输入“学生作业平台”,在URL名称”栏输入school

“选择模板”中选择“空白网站”“用户权限”选择“使用独有选项”,下面其他都选择“否”,单击“创建”按钮,创建完成。

回到主页,打开“网站设置”窗口,单击“快速启动”超链接,点击每个项目前面的那个代表编辑功能的图片,然后点击“删除”按钮。删除项目后,回到主页。

回到主页,打开“网站设置”窗口,单击“网站库和列表”超链接,点击“新建内容”,在“创建”窗口,单击“文档库”,分别创建以下栏目

Ø 上课资料

Ø 学生作业

回到主页,打开“网站设置”窗口,单击“网站库和列表”超链接,点击“新建内容”,在“创建”窗口,单击“讨论板”。在名称栏中输入“师生侃学”,单击“创建”

回到主页,打开“网站设置”窗口,单击“网站库和列表”超链接,点击“新建内容”,在“创建”窗口,单击“调查”。在名称栏中输入“教学调查”,单击“创建”。并以同样的方式分别创建“通知”、“日历及重要事件提示”

3.用户和权限管理

3.1关于“学生作业”“上课资料”的权限设置

在域控制器AD上添加测试OU,并在OU中添加相应测试用户

 

组织单位

用户

任课老师

陈剑(chenjian...

ATA1

ATA1管理员(ata1admin)、张三(zhangsan...

ATA2

ATA2管理员(ata2admin)、李翊鑫(liyixin...

打开“网站设置”窗口,单击“人员和组”超链接,点击“新建”选择“新建用户组”。在“名称和描述”栏中输入“ATA1在“所有者”栏中输入“ata1admin”单击“用户检查”图标,确认用户输入正确。

单击ATA1,点击“新建”选择“新建用户”。在“用户/用户组”栏中输入“ata1admin单击“用户检查”图标,确认用户输入正确。在“授予权限”栏中选择“直接授予用户权限”,并勾选“Sharepoint用户组添加用户(ATA1【参与讨论,读取】)”。

PS:以同样的方式添加ATA2Teacher的用户组和用户

3.2创建相应的文件夹并授予相应权限

单击“首页”、“上课资料”、“新建”“新建文件夹”,创建相应科目的文件夹

选择“Windows Server 2008应用服务器管理”文件夹“管理权限

分别添加编辑用户组和用户的权限

 

用户/用户组

权限

陈剑(chenjian

完全控制,设计,参与讨论、读取

ATA1

读取

ATA2

读取

3.2.1测试结果

Ø 使用老师“陈剑(chenjian”用户可以上传修改删除文档;

Ø 使用“ATA1”或“ATA2”的用户可以查看下载文档;

3.3使每个学生可以上传自己的作业(其他人不能修改)

3.2.1相同的方式分别创建每个科目的文件夹,并在其子文件夹下创建每个学生的相应文件夹

单击“首页”“学生作业”“新建”“新建文件夹”“Windows Server 2008应用服务器管理

编辑权限如下图

分别添加相应的子文件夹ATA1”“ATA2>1**...39李翊鑫”...

按照3.2.1的方法编辑权限,权限如下图

3.3.1测试结果

Ø 使用老师“陈剑(chenjian”用户可以上传修改删除文档;

Ø 使用“李翊鑫(liyixin”用户可以查看上传修改删除文档;

Ø 使用其他用户无法查看下载文档;

3.4关于“师生侃学”(论坛)的权限设置

打开“师生侃学”窗口,单击“设置”“论坛版设置”,点击“此论坛版的权限”超链接。编辑用户权限如下:

3.4.1测试结果

分别使用几个用户测试论坛创建话题,评论

4.日历及重要事件通知

回到主页,点击“日历及重要事件通知”,可以通过“新建项目”新建通知,也可以通过“订阅通知(RSS)”使用邮箱通知事件的更改等

5.美化板块

回到主页,点击“网站操作”,选择“编辑网页”,在中间窗中,点击“添加Web部件”。在“添加Web部件”对话框中,在“列表和库”的复选框中,选择需要添加的插件。单击“添加”按钮。检查显示结果。

回到主页,分别单击“教学调查”“师生侃学”“上课资料”“学生作业”,并记录下对应的网址。

回到主页,打开“网站设置”窗口,单击“顶部链接栏”超链接,在“顶部链接栏”对话框中,点击“新建链接”,在“请键入说明”栏中输入“教学调查”,在“请键入网址”栏中,输入对应的“教学调查”的网址。

按上述方法,完成“师生侃学”“上课资料”“学生作业”的顶部链接。回到主页,检查网页的显示效果。

回到主页,打开“网站设置”窗口,单击“网站主题”超链接,可以选择自己觉得好看的主题色彩

6.外网访问WSS

可以通过架设vpn服务器,外网用户使用vpn连接内网利用点对点vpn访问WSS

由于本实训不涉及其他内容,关于vpn方面使用的是原有环境的父子域架设的基于IPsec的站点对站点vpn连接,但与点对点的原理相同。测试图片如下

三、总结

在做这份报告的时候,一开始觉得很简单,但渐渐发现,WSS3.0的权限机制不是很灵活,在上传作业方面要做到每个学生只能上传自己的作业,而无法查看其它人的作业,以做到防止抄袭的作用,这方面经过了查找了很多相关的资料才发现使用文件夹可以更详细的分配每个用户/用户组的权限。

在以上的试验中可以不用加入到域而使用WSS服务器上的本地用户管理创建相应的用户,这样可以节省不必要的资源浪费。


本文转自 leyex 51CTO博客,原文链接:http://blog.51cto.com/leyex/1070269

25175学生作业提交管理系统功能简介: 大致分为三个级别,学生主页面,教师主页面及后台管理 1.学生通过该模块注册,以便进入学生主页面提交作业,正确的登陆才能提交作业学生上交作业模块,作业成绩查询模块。我要提问模块。 学生上载作业时,学生可将作业的所有文档压缩成一个zip文件,然后填写学号,选择课程然后提交。学生可以通过我要提问模块向老师提出问题,老师给与解答。   2,教师主页面包括如下模块:他的用户是教师。 教师工作区管理模块,教师工作区答疑模块,作业打分模块,作业成绩查询模块。 教师工作区显示学生的学号作业序号,以及下载作业,评判作业。教师可以通过答疑模块回答学生的问题。教师点击评判作业,进入打分页面,为学生作业打分。   4后台管理页面:它的用户是管理员。 用户管理员可以创建、删除、修改学生老师的用户名和密码。并能够删除作废的作业和答疑的问题。保证系统的正常运行。 学生注册登陆模块 完成学生注册登陆功能,学生通过该模块登陆至学生主页面 教师注册登陆模块 完成教师注册登陆功能,教师通过该模块登陆至教师主页面 学生上交作业模块 完成学生上传作业功能 作业成绩查询模块 显示作业成绩功能 教师工作区管理模块 教师在该页面上可以下载学生作业,并能给与打分,同时可显示成绩等功能 作业打分模块 教师打分功能 学生我要提问模块 进入该模块,学生可以看到所有的提问列表,可以点击查看提问的详细信息,并能够提出新问题。 教师工作区答疑模块 进入该模块,教师可以查看所有提问列表,并进入答疑详细信息页面答疑,完成答疑操作。   请修改为你的IP,SQL帐号 及密码 (本例SQL帐号sa 密码25175)   联系QQ:993018853 QQ:29752345   25175软件基础部:云工 开发 页面设计:陈工
以下是一个基于 C 语言的 WebSocket Secure(WSS)服务端的示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <openssl/ssl.h> #include <openssl/err.h> #define BUFFER_SIZE 1024 int main(int argc, char *argv[]) { int server_fd, client_fd, opt = 1, len; struct sockaddr_in server_addr, client_addr; char buffer[BUFFER_SIZE]; SSL_CTX *ctx; SSL *ssl; // 创建 SSL 上下文 SSL_library_init(); ctx = SSL_CTX_new(TLSv1_2_server_method()); if (!ctx) { printf("SSL_CTX_new() failed: %s\n", strerror(errno)); exit(1); } // 加载证书和私钥 if (SSL_CTX_use_certificate_file(ctx, "server.crt", SSL_FILETYPE_PEM) <= 0) { printf("SSL_CTX_use_certificate_file() failed: %s\n", strerror(errno)); exit(1); } if (SSL_CTX_use_PrivateKey_file(ctx, "server.key", SSL_FILETYPE_PEM) <= 0) { printf("SSL_CTX_use_PrivateKey_file() failed: %s\n", strerror(errno)); exit(1); } // 创建 TCP 套接字 if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { printf("socket() failed: %s\n", strerror(errno)); exit(1); } // 设置 SO_REUSEADDR 选项 if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) == -1) { printf("setsockopt() failed: %s\n", strerror(errno)); exit(1); } // 绑定地址和端口 memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = htonl(INADDR_ANY); server_addr.sin_port = htons(8443); if (bind(server_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) { printf("bind() failed: %s\n", strerror(errno)); exit(1); } // 开始监听 if (listen(server_fd, 10) == -1) { printf("listen() failed: %s\n", strerror(errno)); exit(1); } printf("Listening on port 8443...\n"); while (1) { len = sizeof(client_addr); // 接受客户端连接 if ((client_fd = accept(server_fd, (struct sockaddr *)&client_addr, &len)) == -1) { printf("accept() failed: %s\n", strerror(errno)); continue; } printf("Accepted connection from %s:%d\n", inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port)); // 创建 SSL 套接字 ssl = SSL_new(ctx); SSL_set_fd(ssl, client_fd); // 进行 SSL 握手 if (SSL_accept(ssl) != 1) { printf("SSL_accept() failed: %s\n", strerror(errno)); SSL_shutdown(ssl); close(client_fd); continue; } printf("SSL handshake successful\n"); // 接收数据并回复 while (1) { len = SSL_read(ssl, buffer, BUFFER_SIZE); if (len <= 0) { printf("SSL_read() failed: %s\n", strerror(errno)); break; } buffer[len] = '\0'; printf("Received data: %s\n", buffer); SSL_write(ssl, buffer, strlen(buffer)); } // 关闭 SSL 套接字 SSL_shutdown(ssl); SSL_free(ssl); // 关闭客户端套接字 close(client_fd); printf("Connection closed\n"); } // 关闭 SSL 上下文 SSL_CTX_free(ctx); return 0; } ``` 在上述代码中,我们使用了 OpenSSL 库来实现 WSS。首先,我们创建了一个 SSL 上下文,用于加载证书和私钥,并设置支持的 SSL/TLS 协议版本。然后,我们创建一个 TCP 套接字并绑定地址和端口,开始监听客户端连接。每当有一个客户端连接进来,我们就接受连接并创建一个 SSL 套接字,进行 SSL 握手。一旦握手成功,我们就可以通过 SSL_read() 和 SSL_write() 函数进行数据的收发。当客户端关闭连接时,我们关闭 SSL 套接字并关闭客户端套接字。最后,我们关闭 SSL 上下文并退出程序。 要编译上述代码,你需要安装 OpenSSL 库并使用以下命令: ``` gcc -o wss_server wss_server.c -lssl -lcrypto ``` 其中,-lssl 和 -lcrypto 是链接 OpenSSL 库的参数。你还需要准备一个自签名的服务器证书和私钥,用于进行 SSL 握手。你可以使用 OpenSSL 命令生成: ``` openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 365 ``` 这将生成一个有效期为 365 天的自签名证书和私钥。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值