计算机应用与开发实训报告正文模版.docx

上传人:b****6 文档编号:7388101 上传时间:2023-01-23 格式:DOCX 页数:12 大小:708.44KB
下载 相关 举报
计算机应用与开发实训报告正文模版.docx_第1页
第1页 / 共12页
计算机应用与开发实训报告正文模版.docx_第2页
第2页 / 共12页
计算机应用与开发实训报告正文模版.docx_第3页
第3页 / 共12页
计算机应用与开发实训报告正文模版.docx_第4页
第4页 / 共12页
计算机应用与开发实训报告正文模版.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

计算机应用与开发实训报告正文模版.docx

《计算机应用与开发实训报告正文模版.docx》由会员分享,可在线阅读,更多相关《计算机应用与开发实训报告正文模版.docx(12页珍藏版)》请在冰豆网上搜索。

计算机应用与开发实训报告正文模版.docx

计算机应用与开发实训报告正文模版

一.实训内容2

1、案例分析2

2、解决方案2

数据库关系图(E-R图)如下:

3

物理图3

用例图4

系统功能模块图5

3、程序实现5

系统实现的功能:

5

用户登录5

给用户添加权限6

给组添加权限6

给角色添加权限7

给用户添加角色7

删除一个角色7

删除一个组8

给用户,组,角色添加角色9

二.项目调试与测试9

登录界面9

所有权限10

用户管理10

角色管理11

组管理11

三.实训小结13

 

一.实训内容

1、案例分析

企业应用系统对安全问题有较高的要求,基于角色的访问控制方法,实现了用户与访问权限的逻辑分离,更符合企业的用户、组织、数据和应用特征。

把整个访问控制过程分成两步:

访问权限与角色相关联,角色再与用户或者组关联,从而实现了用户与访问权限的逻辑分离。

它极大的方便了权限管理。

2、解决方案

为此我们要设计如下几张关键的数据表,

用户:

记录用户信息;

角色:

权限的集合;

组:

用户的集合;

权限:

权限的基本信息;

数据库关系图(E-R图)如下:

 

物理图

用例图

系统功能模块图

3、程序实现

代码实现应分为三大部分:

系统实现的功能:

1、创建、删除,更新角色,并添加权限到角色;

2、创建、删除,更新用户,并可个用户添加权限或者角色;

3、创建、删除,更新组,并给组添加用户,在给组添加权限;

用户登录

采用动态权限,用TreeView获取数据库中用户的权限:

 ALTERPROCEDUREGetAuthority

@cnoint

AS

select*fromAuthoritywhereanoin(selectanofromc_awherecno=@cno)

union

select*fromAuthoritywhereanoin(selectanofromg_awheregnoin(

selectgnofromc_gwherecno=@cno))

union

select*fromAuthoritywhereanoin(selectanofroma_acwhereacnoin(

selectacnofromc_acwherecno=@cno))

页面加载事件中:

intcno=Convert.ToInt32(Request.Cookies["id"].Value);

stringconn=ConfigurationManager.ConnectionStrings["GDSConnectionString"].ToString();

SqlConnectionmycon=newSqlConnection(conn);

mycon.Open();

SqlCommandmycom=newSqlCommand();

mycom.CommandText="GetAuthority";

mycom.CommandType=CommandType.StoredProcedure;

mycom.Connection=mycon;

SqlParameterp1=newSqlParameter("@cno",cno);

mycom.Parameters.Add(p1);

DataTabledt=newDataTable();

SqlDataAdaptersda=newSqlDataAdapter(mycom);

sda.Fill(dt);

GridView1.DataSource=dt;

GridView1.DataBind();

给用户添加权限

ALTERPROCEDUREAddOneAuthToCus

@cnoint,

@anoint

AS

insertintoc_avalues(@cno,@ano)

给组添加权限

ALTERPROCEDUREAddOneAuthToGro

@anoint,

@gnoint

AS

insertintog_avalues(@ano,@gno)

给角色添加权限

ALTERPROCEDUREAddOneAuthToAct

@anoint,

@acnoint

AS

insertintoa_acvalues(@ano,@acno)

给用户添加角色

ALTERPROCEDUREAddOneCusToAct

@cnoint,

@acnoint

AS

insertintoc_acvalues(@cno,@acno)

删除一个角色

先判断该角色下是否还有用户,若有,则不能删除

ALTERPROCEDUREDeleteOneActor

@acnoint,

@typeintoutput

AS

ifnotexists(select*fromc_acwhereacno=@acno)

begin

ifnotexists(select*froma_acwhereacno=@acno)

begin

deletefromActorwhereacno=@acno

set@type=1

end

End

按钮点击事件中:

protectedvoidButton1_Click(objectsender,EventArgse)

{

inttype=0;

for(inti=0;i<=GridView1.Rows.Count-1;i++)

{

CheckBoxcheckbox=(System.Web.UI.WebControls.CheckBox)

GridView1.Rows[i].FindControl("CheckBox1");

if(checkbox.Checked==true)

{

stringconn=ConfigurationManager.ConnectionStrings["GDSConnectionString"].ToString();

SqlConnectionmycon=newSqlConnection(conn);

mycon.Open();

SqlCommandmycom=newSqlCommand();

mycom.CommandText="DeleteOneActor";

mycom.CommandType=CommandType.StoredProcedure;

mycom.Connection=mycon;

SqlParameterp1=newSqlParameter("@acno",GridView1.DataKeys[i].Value);

mycom.Parameters.Add(p1);

 

SqlParameterp2=newSqlParameter();

p2.ParameterName="@type";

p2.Value=type;

p2.SqlDbType=SqlDbType.Int;

p2.Direction=ParameterDirection.Output;

mycom.Parameters.Add(p2);

mycom.ExecuteNonQuery();

type=Convert.ToInt32(p2.Value);

mycom.Parameters.Clear();

mycon.Close();

}

}

if(type==1)

ClientScript.RegisterStartupScript(GetType(),"","window.alert('删除成功!

');",true);

else

ClientScript.RegisterStartupScript(GetType(),"",

"window.alert('该角色尚有成员或权限,无法删除!

');",true);

Bind();

}

删除一个组

先判断该角色下是否还有用户,若有,则不能删除

ALTERPROCEDUREDeleteOneGroup

@gnoint,

@typeintoutput

AS

ifnotexists(select*fromg_awheregno=@gno)

begin

ifnotexists(select*fromc_gwheregno=@gno)

begin

deletefromGroupswheregno=@gno

set@type=1

end

End

给用户,组,角色添加角色

需提取所有权限中他们没有添加的那部分

ALTERPROCEDUREGetActNotAddAuth

@acnoint

AS

select*fromAuthoritywhereanonotin(selectanofroma_acwhereacno=@acno)

 

二.项目调试与测试

登录界面

已拥有权限的用户登录进去后

左边列表即为该用户的权限

所有权限

用户管理

用户管理可以查看所有用户,添加用户,删除用户,通过单选按钮选择用户并对用户的权限进行修改;权限授予需获取该用户没有的权限,权限回收需获取用户已获得的权限。

角色管理

角色管理可以查看所有角色,添加角色,对该角色下的成员进行增、删、改、查操作,通过复选框按钮选择用户进行添加或删除用户,同样的通过复选框按钮选择权限对该角色下的权限进行修改;添加用户需获取该角色不包含的用户,删除用户需获取该角色包含的角色;权限授予需获取该用户没有的权限,权限回收需获取用户已获得的权限。

组管理

组管理可以查看所有组,添加组,对该组下的成员进行增、删、改、查操作,通过复选框按钮选择用户进行添加或删除用户,同样的通过复选框按钮选择权限对该组下的权限进行修改;添加用户需获取该组不包含的用户,删除成员需获取该组包含的角色;权限授予需获取该组没有的权限,权限回收需获取组已获得的权限。

 

三.实训小结

通过这个培训,我学到了不少东西,没培训之前,对做系统的概念很模糊,无从下手,现在,我能独立的完成一个中小型系统的设计与实现。

成长了不少。

这个培训让我学到了很多知识:

1、SQL语句、存储过程、数据库的设计与实现

2、PowerBulider和PowerDesinger的熟练运用

3、HTML、DIV+CSS、javascript、jquery语音

4、C#程序设计

5、ASP.NET内置对象及.NET大型软件控件

6、ADO.NET语音访问数据库

7、Linq访问数据库

8、Ajax,局部刷新

9、系统需求分析,数据分析

10、......

感谢这段时间以来老师的悉心栽培,老师辛苦了!

也感谢同学们在生活学习上的帮助,,很多知识都还需要巩固,要学的知识还有很多,后我会继续努力。

 

成绩评定表

教师评语

 

考勤成绩:

占总成绩比例10%

平时成绩:

,占总成绩比例20%

实训报告成绩:

,占总成绩比例70%

实训总成绩:

指导教师签字:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1