asp.net webform 打造私人后台管理系统(附源码)
系统简介
git地址:https://github.com/qingfengjun/XSSystem
不少人让我做公司的网站,要求不多,但是需要有一个后台系统,所以就有了开发的动力。也想做个系统自己学习一下,反正平时也不知道干啥。
本系统采用的是asp.net webform+ado.net,也许现在用的很少了,但是的确是简单粗暴,还是很方便的。这个后台系统是我一个人制作,从布局,写类库到数据库设计,总算有一个算是我私人的系统了。虽然比较简单,很多地方设计不到位,但是既然开始了,就不能中断了,我还是坚持把这个系统做完了。后面我自己开发准备使用asp.net mvc+EF。webform只是一段经历,我觉得这段经历很重要,从易到难,一步一个脚印。
去年就一直在工作,一直在进行一些学习和准备,中间也进行过一些大改动,如改为ajax+ashx,改权限设计等。
系统UI
感觉UI要做的好看很麻烦,反正整的觉得不恶心就可以了,下面是登录页面

主要页面

工程介绍

1:xsFramework.Function 里面有生成验证码等一些辅助方法,目前方法比较少
2:xsFramework.SqlServer 数据库操作类,具体介绍可以看刚整了一个数据库操作类,但是可以用吗
数据库操作例子,还算是比较简单的,但是sql这样是不是很那个...
/// <summary>
/// 新增招聘
/// </summary>
/// <returns></returns>
public bool AddHire(DirModel dml)
{
xsSqlParameter sqlpara = new xsSqlParameter();
sqlpara.AddSqlParameter(dml);
sqlpara.SqlConnectString = GlabalString.DBString;
sqlpara.SQL = @"insert into [dbo].[xs_hire]([hire_id],[hire_name],[hire_count],[hire_place],[hire_remark])
values (@hire_id ,@hire_name,@hire_count,@hire_place,@hire_remark)";
SqlHelper.Execute(sqlpara);
return true;
}
3:xsFramework.UserControl 控件库,目前只有一个分页控件和其辅助方法,具体实现可以看asp.net 分页-自己写分页控件
前台直接拖过去就可以使用,后台用控件库里面的类进行分页
<cc1:xsPageControl ID="xsPage" runat="server"OnPageChanged="xsPage_PageChanged">
</cc1:xsPageControl>
protected void xsPage_PageChanged(object sender, xsFramework.UserControl.Pager.PageChangedEventArgs e)
{
PagerParameter pagepara = new PagerParameter();
pagepara.DbConn = GlabalString.DBString;
pagepara.XsPager = xsPage;
pagepara.Sql = pageLogic.QueryNews(ddlNewType.SelectedValue,txtNewName.Text.Trim());
pagepara.OrderBy = "new_id"; DataTable dt = xsPageHelper.BindPager(pagepara, e);
Nodata.Visible = false;
if (dt.Rows.Count == ) Nodata.Visible = true; rptNews.DataSource = dt;
rptNews.DataBind();
}
/// <summary>
/// 根据页码查询新闻
/// </summary>
/// <returns></returns>
public string QueryNews(string strType,string strName)
{
string sql = @"select new_id,new_title,
dbo.f_ConvertDate(a.create_time) create_time, b.user_name from xs_new a
left join xs_users b on b.user_no=a.create_user where 1=1 ";
if (!string.IsNullOrEmpty(strType)) sql += " and a.new_type_id='" + strType + "'";
if (!string.IsNullOrEmpty(strName)) sql += " and a.new_title like '%" + strName + "%'";
return sql;
}
4:xsFramework.Web 页面辅助库,继承自page,进行页面的权限设定
系统权限
新增群组,群组设定功能,用户设定群组,取得用户某个功能的权限,可参考系统权限之简单设计
1:查询群组,index.aspx页面进入时根据登录者查询出需要的群组,进行菜单显示
if(select MAX(group_id) from xs_group_user where user_no=@user_no)='G001'
begin
select f.function_id,f.function_brother_id,f.function_parent_id,f.function_level,f.function_name,f.function_url,f.function_sort, f.function_action group_action
from xs_function f where f.function_inmenu=1
end
else
begin
select f.function_id,f.function_brother_id,f.function_parent_id,f.function_level,f.function_name,f.function_url,f.function_sort,gf.group_action from
[xs_group_user] gu
inner join [xs_group_function] gf on gf.group_id=gu.group_id
inner join xs_function f on f.function_id=gf.function_id and f.function_inmenu=1
where gu.user_no=@user_no
end
2:页面继承xsFramework.Web 中的AuthWebPage类,自动去判断权限和访问设定。
protected override void OnLoad(EventArgs e)
{
//判断session是否存在
if (LoginUser == null)
{
NotLogin();
return;// 不受postback下面的影响
}
else
{
string thisUrl = Request.RawUrl.Trim().Split('?')[].ToLower(); if ("/index.aspx".Equals(thisUrl))
{
_actions = "";//如果有登录首页默认有查询权限
}
var functions = LoginUser.Functions.Where(f => f.FunctionUrl.ToLower().Equals(thisUrl)); if (functions.Count() != )
{
_actions = functions.First().FunctionActions;
}
if (_actions.Length == )
{
NotAccess();//not access
return;
}
else
{
SetAction();// access
}
}
base.OnLoad(e);
}


3:如果一个页面有新增权限,代码为02,那么设置需要的html元素actionid为02,权限类会自动对其进行显示和隐藏
<asp:Button ID="btnSave" runat="server" Text="新增" CssClass="button"
ValidationGroup="Save" onclick="btnSave_Click" actionid="" />
结尾+源代码(Download)
本想写几篇博客进行介绍,但是感觉有点浪费时间,所以简单的说了一下,我觉得有源代码这些都不是问题了。请珍惜我的劳动成果,希望看到大家的批评和建议。本系统对初学者可能帮助比较大,高手们可以直接跳过了,应为我觉得我就是菜鸟...
DB是sql server 导出的,自己进行建立,publish可以直接部署到IIS,source是源代码用的是vs2012,vs2010要运行可以直接新建一个工程拷过去。最后别忘了改变DB链接。
asp.net webform 打造私人后台管理系统(附源码)的更多相关文章
- ASP.NET程序读取二代身份证(附源码)
原文:ASP.NET程序读取二代身份证(附源码) 一般来说winform应用程序解决这个问题起来时很容易的,web应用程序就麻烦一点了. 这里我说说我的解决思路: 一.你必要有联机型居民身份证阅读器一 ...
- Asp.net MVC - 使用PRG模式(附源码)
阅读目录: 一. 传统的Asp.net页面问题 二.Asp.net MVC中也存在同样的问题 三.使用PRG模式 四.PRG模式在MVC上的实现 一. 传统的Asp.net页面问题 一个传统的Asp. ...
- springboot+mybatis+bootstrap开发员工oa后台管理系统项目源码
java项目源码详情描述:S020<springboot+mybatis+bootstrap开发员工oa后台管理系统项目源码>jboa项目有请假以及报销单的申请和审核session共享加登 ...
- 使用MiniProfiler给Asp.net MVC和Entity Framework号脉(附源码)
在学习python开发框架pylons/pyramid的过程中,里面有个非常棒的页面性能监控功能,这样在开发过程中,你能清楚的知道当前页面的性能以及其它参数. 这里介绍一下如何给Asp.net MVC ...
- 基于S2SH开发学生考勤管理系统 附源码
开发环境: Windows操作系统开发工具:Eclipse+Jdk+Tomcat+mysql数据库 运行效果图 源码及原文链接:http://javadao.xyz/forum.php?mod=vie ...
- JavaSwing开发简单的银行管理系统 附源码
开发环境: Windows操作系统开发工具: MyEclipse/Eclipse+Jdk+mysql数据库 运行效果图:
- 基于SSH开发银行个人业务管理系统 附源码
开发环境: Windows操作系统开发工具: MyEclipse+Jdk+Tomcat+MySql数据库 运行效果图
- 基于Struts2+Hibernate开发小区物业管理系统 附源码
开发环境: Windows操作系统开发工具: MyEclipse+Jdk+Tomcat+MySql数据库 运行效果图: 源码及原文链接:https://javadao.xyz/forum.php?mo ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码]
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码] 文件上传这东西说到底有时候很痛,原来的asp.net服务器 ...
随机推荐
- Ubuntu修改系统语言为英文可支持中文
简单来说,就行修改/etc/default/locale文件,设置语言位UTF-8,如果没有这个语言,就执行命令locale-gen en_US.UTF-8进行安装,没有即时生效的话就重启. 查看当前 ...
- 我的CCF备考指南
CCF计算机软件能力认证(简称CCF CSP认证). 认证涉及知识点: 认证内容主要覆盖大学计算机专业所学习的程序设计.数据结构.算法以及相关的数学基础知识.包括但不限于: (1)程序设计基础 逻辑与 ...
- NOIP2006 数列
codevs 1141 数列 http://codevs.cn/problem/1141/ 2006年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目描述 ...
- HDU 2154 跳舞毯 | DP | 递推 | 规律
Description 由于长期缺乏运动,小黑发现自己的身材臃肿了许多,于是他想健身,更准确地说是减肥. 小黑买来一块圆形的毯子,把它们分成三等分,分别标上A,B,C,称之为“跳舞毯”,他的运动方式是 ...
- python基础---输入输出
1.输入字符串. name=input() or name=input('please input a string') 这样可以接收一个字符串,包括空格,都可以输入.只有回车不接受,作为结束符, ...
- linux下安装tomcat8
1.自己电脑下载好jdk的linux版本传到linux上或者直接用wget命令下载 安装文件放上去,用ls命令查看下载后的文件,看到apache-tomcat-8.0.28.tar.gz就是我们下载来 ...
- MySQL数据库运行环境的搭建
第一步:安装wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b文件,安装过程中可能会遇到问题,把遇到的问题代码复制粘贴到360人工服务,查找方案 ...
- 通过or注入py脚本
代码思路 1.主要还是参考了别人的代码,确实自己写的和别人写的出路很大,主要归咎还是自己代码能力待提高吧. 2.将功能集合成一个函数,然后通过*args这个小技巧去调用.函数的参数不是argv的值,但 ...
- android CVE 漏洞汇总
arm exploits 技术教程: Learning Pentesting for Android Devices CVE-2015-1530 ,CVE-2015-1474 两个android整数溢 ...
- python实战===itchat
import itchat itchat.login() friends=itchat.get_friends(update=True)[0:] male=female=other=0 for i i ...