背景:

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

计划

多系统统一权限管理(在这里我定义成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. 因为 GitHub Actions 我发现了 Jake Wharton 的一个仓库

    本文微信公众号「AndroidTraveler」首发. 背景 昨天(2019-11-14)上去 GitHub 上面一看,结果来了个下面的提示: 点进去一看: 看来是自动化构建相关的. 那就试一下,选了 ...

  2. css3关于body的默认滑动机制

    css关于body的默认滑动机制 大家都知道 body里面只要高度超出了原来的高度就可以滚动要取消这个机制 只能设置height:100% overflow:hidden就能取消了

  3. PHP根据ip获取地理位置(通过高德地图接口)

    PHP根据ip获取地理位置(通过高德地图接口)<pre>//restapi.amap.com/v3/ip?key=2004f145cf3a39a72e9ca70ca4b2a1dc& ...

  4. Convolutional Sequence to Sequence Learning 论文笔记

    目录 简介 模型结构 Position Embeddings GLU or GRU Convolutional Block Structure Multi-step Attention Normali ...

  5. IDEA快捷键汇总

    [常用] Ctrl+Shift + Enter,语句完成 "!",否定完成,输入表达式时按 "!"键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更 ...

  6. JavaScript with Image:创建缩略图

    当图片很大,直接把图片从Server下载到浏览器上看是一种很不明智的做法,浪费了服务器的资源,网络带宽和客户端的资源.所以,通常Server和Client之间会传输缩略图,只有当Client请求某张图 ...

  7. vue-cli中使用less

    先安装less,less-loader npm install less less-loader --save-dev,你会在package.json中看到图下 之后不用配置就可以在项目中用less了 ...

  8. CSS复合选择器是什么?复合选择器是如何工作

    复合选择器介绍 复合选择器其实很好理解,说白了就跟我们生活中的有血缘关系家庭成员一样,通过标签或者class属性或id属性,去找对应的有血缘关系的某个选择器,具体的大家往下看哦. 如果是初学者对基本的 ...

  9. 小白学 Python 爬虫(1):开篇

    人生苦短,我用 Python 引言 各位同学大家好,好久不见(可能只有一两天没见:囧)~~~ 先讲一件事情,昨天为啥没更新. emmmmmmmmm,当然是因为加班啦,快到年底了,公司项目比较忙,最近的 ...

  10. nyoj 41-三个数从小到大排序(STL --> sort(a, a+n) 升序)

    41-三个数从小到大排序 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:31 submit:44 题目描述: 现在要写一个程序,实现给三个数排序的功 ...