背景:

之前公司内部做了不少系统,但是权限管理都是分开的;一直都想能够有一套统一管理的权限管理系统;有的时间都是一直在计划,随着时间的流逝,计划始终没有实现,也随着项目的增多而这权限管理也变得版本多样了;终于最近能够狠下心来挤出时间来实施这个计划;

计划

多系统统一权限管理(在这里我定义成UPMS);实现多个系统的权限统一配置管理;还有统一登录接口,来完成最终的权限认证,因为有了统一配置,肯否定就要有同意登陆认证,要不也是空谈;

开发环境

OS:win10

IDE:VS2015

DB:mysql

运行环境:iis6以上

framework:net4.5

Begin

首先,先把界面放出来给大家看看;这种都是因人而异的,ui是在网上download的一个后台管理系统模板,另外加上自己的修改而成;还有用到分页组件,也是开源组件加以修改的,以上所说的后边全部都会开源出来。

登陆功能目前是采用from认证方式

[HttpPost]
public void Login(LoginOnModel collection)
{
bool isPersistent = true;
var obj = loginRepository.GetOne("select * from UserInfo where UserName=@UserName and UserPassword=@Password and IsDel=0;", collection).FirstOrDefault();
if (obj != null)
{
SetFormAuthentication(isPersistent, obj);
//GetCurrentUserPermissions(obj.ID);
Response.Redirect("~/Home/Index");
}
} private void SetFormAuthentication(bool isPersistent, LoginOnModel user)
{
#region
////////////////////////////////////////////////////////////////////
DateTime utcNow = DateTime.Now;
DateTime cookieUtc = isPersistent ? utcNow.AddDays() : utcNow.Add(FormsAuthen
tication.Timeout);
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(, user.
UserName,
utcNow,
cookieUtc,
isPersistent,
user.UserName.ToString(), FormsAuthentication.FormsCookiePath);
string ticketEncrypted = FormsAuthentication.Encrypt(ticket);
if (string.IsNullOrEmpty(ticketEncrypted))
{
throw new InvalidOperationException("FormsAuthentication.
Encrypt failed.");
}
HttpCookie httpCookie = new HttpCookie(FormsAuthentication.
FormsCookieName, ticketEncrypted)
{
Domain = FormsAuthentication.CookieDomain,
HttpOnly = true,
Secure = FormsAuthentication.RequireSSL,
Path = FormsAuthentication.FormsCookiePath,
};
var name = Uri.EscapeDataString(user.UserName);
HttpCookie nameCookie = new HttpCookie("name", name)
{
Domain = FormsAuthentication.CookieDomain,
HttpOnly = true,
Secure = FormsAuthentication.RequireSSL,
Path = FormsAuthentication.FormsCookiePath,
};
//if (isPersistent)
{
httpCookie.Expires = utcNow.AddDays();
nameCookie.Expires = utcNow.AddDays();
}
// FormsAuthentication.SetAuthCookie(name, false);
HttpContext.Response.Cookies.Add(httpCookie);
HttpContext.Response.Cookies.Add(nameCookie);
////////////////////////////////////////////////////////////
#endregion
//ViewBag.aaa = Request.Cookies[".FA"].Value;
}

html

@model Com.Test.UPMS.Web.Areas.Admin.Models.LoginOnModel
@{
Layout = "~/Areas/Admin/Views/Shared/_LayoutLogin.cshtml";
ViewBag.SystemName = "统一用户权限管理系统";
ViewBag.CompanyName = "公司";
}
<div class="main-content">
<div class="row">
<div class="col-sm-10 col-sm-offset-1">
<div class="login-container">
<div class="center">
<h1>
<i class="ace-icon fa fa-leaf green"></i>
@*<span class="red">Ace</span>*@
<span class="white" id="id-text2">@ViewBag.SystemName</span>
</h1>
<h4 class="blue" id="id-company-text">© @ViewBag.CompanyName</h4>
</div>
<div class="space-6"></div>
<div class="position-relative">
<div id="login-box" class="login-box visible widget-box no-border">
<div class="widget-body">
<div class="widget-main">
<h4 class="header blue lighter bigger">
<i class="ace-icon fa fa-user green"></i>
登陆
</h4>
<div class="space-6"></div>
@using (Html.BeginForm("Login", "Login", FormMethod.Post))
{
<fieldset>
<label class="block clearfix">
<span class="block input-icon input-icon-right">
<input type="text" class="form-control" name="UserName" placeholder="用户名" />
<i class="ace-icon fa fa-user"></i>
</span>
</label>
<label class="block clearfix">
<span class="block input-icon input-icon-right">
<input type="password" class="form-control" name="Password" placeholder="密码" />
<i class="ace-icon fa fa-lock"></i>
</span>
</label>
<div class="space"></div>
<div class="clearfix">
<label class="inline">
<input type="checkbox" class="ace" />
<span class="lbl"> 记住我</span>
</label>
<button type="submit" class="width-35 pull-right btn btn-sm btn-primary">
<i class="ace-icon fa fa-key"></i>
<span class="bigger-110">登陆</span>
</button>
</div>
<div class="space-4"></div>
</fieldset>
}
</div><!-- /.widget-main -->
</div><!-- /.widget-body -->
</div><!-- /.login-box -->
</div><!-- /.position-relative -->
<div class="navbar-fixed-top align-right">
<br />
 
<a id="btn-login-dark" href="#">Dark</a>
 
<span class="blue">/</span>
 
<a id="btn-login-blur" href="#">Blur</a>
 
<span class="blue">/</span>
 
<a id="btn-login-light" href="#">Light</a>
     
</div>
</div>
</div><!-- /.col -->
</div><!-- /.row -->
</div>

  

UI效果:

其他功能UI

UI效果:

作者:zhangwenjian
出处:http://www.cnblogs.com/zhangwenjian 或 http://www.zhangwj.com

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

Asp.net MVC + AngularJS 统一权限管理系统(一)的更多相关文章

  1. ASP.NET MVC 通用角色权限管理系统

    RightControl 介绍 .NET 通用后台角色权限管理系统,已完成.项目地址:http://106.14.77.184/Admin/Login 码云地址:https://gitee.com/L ...

  2. asp.net mvc +easyui 实现权限管理(二)

    一写完后,好久没有继续写了.最近公司又在重新开发权限系统了,但是由于我人微言轻,无法阻止他们设计一个太监版的权限系统.想想确实是官大一级压死人啊, 没办法我只好不参与了 让他们去折腾. 我就大概说一下 ...

  3. ASP.NET MVC4+EasyUI+EntityFrameWork5权限管理系统——菜单模块的实现(二)

    ASP.NET MVC4+EasyUI+EntityFrameWork5权限管理系统——数据库的设计(一) 菜单和模块是在同一个表中,采用的是树形结构,模块菜单表结构如下代码: USE [Permis ...

  4. 开发ASP.NET MVC设置统一的命名空间

    当你创建一个全新的ASP.NET MVC专案之后,你想设置统一的命名空间,从可以下面几次入手. 首先设置专案的属性: 第二步,打开Views/Web.config文件,修改: 第三步,修改路由文件的命 ...

  5. [Angularjs]asp.net mvc+angularjs+web api单页应用

    写在前面 最近的工作一直在弄一些h5的单页应用,然后嵌入到app的webview中.之前一直在用angularjs+html+ashx的一套东西.实在是玩腻了.然后就尝试通过asp.net mvc的方 ...

  6. asp.net core 身份认证/权限管理系统简介及简单案例

    如今的网站大多数都离不开账号注册及用户管理,而这些功能就是通常说的身份验证.这些常见功能微软都为我们做了封装,我们只要利用.net core提供的一些工具就可以很方便的搭建适用于大部分应用的权限管理系 ...

  7. ASP.NET MVC4+EasyUI+EntityFrameWork5权限管理系统——数据库的设计(一)

    快一年没写博客了,这段时间感觉好迷茫,写点博客,记录一下自己的成长过程,希望对大家也有帮助 先上图 一个用户可以有多个角色,一个用户可以属于多个部门,这些都可以控制到权限,有时特殊要求,同样的部门和角 ...

  8. (转)ASP.NET MVC4+EasyUI+EntityFrameWork权限管理系统——数据库的设计(一)

    原文地址:http://www.cnblogs.com/cmsdn/p/3371576.html 快一年没写博客了,这段时间感觉好迷茫,写点博客,记录一下自己的成长过程,希望对大家也有帮助 先上图 一 ...

  9. 一步一步Asp.Net MVC系列_权限管理总结(附MVC权限管理系统源码)

    在上一节中我们总结了关于权限控制的方式,我们这一节讲解关于权限控制中角色权限的授予处理等等并做本系列的总结. 首先,我们来谈谈权限控制中角色权限的控制,上一节只是针对权限拦截中比较粗的控制,如果我们需 ...

随机推荐

  1. Ansible之常用模块(二)

    1.hostname:此模块的主要作用是管理远端节点主机名 模块帮助: root@localhost ~]# ansible-doc -s hostname - name: Manage hostna ...

  2. 花一天时间试玩vsphere6.7(EXSI)服务器版的vmware

    花一天时间试玩vsphere6.7(EXSI)服务器版的vmware 要注册账号(2019年11月14注册): 登陆网址:https://my.vmware.com/cn/group/vmware/h ...

  3. linux系统LNMP环境部署

    源码安装 nginx# yum -y install gcc openssl-devel# useradd -s /sbin/nologin nginx# tar xf nginx-1.14.0.ta ...

  4. 更改微信小程序的组件默认样式

    checkbox /*checkbox 整体大小  */ .checkbox {      width: 12%;      /* height: 240rpx; */ } /*checkbox 选项 ...

  5. 基于R数据分析之常用Package讲解系列--1. data.table

    利用data.table包变形数据 一. 基础概念 data.table 这种数据结构相较于R中本源的data.frame 在数据处理上有运算速度更快,内存运用更高效,可认为它是data.frame ...

  6. hdu 1233 (prim,最小生成树) 还是畅通工程

    还是畅通工程Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  7. pat 1041 Be Unique(20 分)

    1041 Be Unique(20 分) Being unique is so important to people on Mars that even their lottery is desig ...

  8. 领扣(LeetCode)二维区域和检索 个人题解

    给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2). 上图子矩阵左上角 (row1, col1) = (2, 1) ,右 ...

  9. bash:裁剪字符串 ${var:3:2}

    1)按照index和长度裁剪变量字符串var=foobar echo ${var:3} -------bar echo ${var:3:2} -------ba 从index为3开始,取两个echo ...

  10. 你必须知道的容器日志 (1) Docker logs & logging driver

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章.监控和日志历来都是系统稳定运行和问题排查的关键,在微服务架构中,数量众多的容器以 ...