tnblog
首页
视频
资源
登录

.NET Mvc EF 小规模的权限管理

4995人阅读 2019/10/31 10:41 总访问:404040 评论:0 收藏:0 手机
分类: .NET MVC权限

《再别康桥》

"轻轻地我走了,正如我轻轻地来,我挥一挥衣袖,不带走一片云彩”                               ——徐志摩


我们想要做一个大致规模的权限管理,第一步肯定要做登录的访问权限限制:

1,我们建立类库,然后新建数据库模型链接数据库


2,再类库里封装用户登录及各个用户权限的方法


3,就是利用过滤器限制登录权限了,如下图:

注意:设置了全局的权限的话所有的页面都进不去,因此我们要在登录的控制器里设置

最后在FilterConfig里配置使用就好了

这样我们的登录权限就做好了,访问其他页面必须经过登录才能访问哟


第二版块就有点难了,大致思路是通过在数据库建立用户表,权限表,用户权限关联表,实现不同用户得到不同的访问页面和操作功能的权限.

1,数据库的设计如下:


2,在登录的控制器里编写验证方法

        public ActionResult LoginIndex(Users user)
        {
            //判断通过执行
            if (ModelState.IsValid)
            {
                UsersDAL userDAL = new UsersDAL();
                Users users = userDAL.Login(user);


                if (users != null)
                {
                    List<Powers> powersList = userDAL.GetPremissonById(users.Id);
                    //保存登陆信息
                    Session["userinfo"] = users;
                    //保存登陆的用户名
                    TempData["userName"] = user.userName;

                    //保存登陆的用户,分配权限
                    Session["powersList"] = powersList;
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    TempData["errorinfo"] = "用户名或密码错误";
                    return RedirectToAction("Index", "Login");
                }

            }
            return RedirectToAction("Index");

        }
    }


注意:这里可能会报错,如下:

原因是:我们的数据模型是在类库里新建的,所以EF的Web.config需要配置文件,

我们只需要在数据模型的App.Config复制到EF的Web.config配置即可,这里就不细说拉。


3,登录成功后,我们要在前台首页显示当前用户的权限表及该表下面的子系表:


在首页菜单栏,我们可以这样:


如果以上步骤都实行了的话,那么初步的用户管理权限就完成了。

下期分享不同用户的修改树形权限,敬请期待...




评价

.net Mvc EF框架中Left Join的SelectMany原理

下列代码为实现Left join 查询数据库,如果在调用SelectMany方法之前已经ToList,返回之后就结束操作数据库了,SelectMany ...

net core 使用 EF Code First

下面这些内容很老了看这篇:https://www.tnblog.net/aojiancc2/article/details/5365 项目使用多层,把数据库访问...

cAPS.net 保存base64位格式的图片

publicvoidUpload() { //取出图片对应的base64位字符 stringimgBase=Request[&quot;imgBase&quot;]; //c#里边的base6...

Quartz.net实例动态改变周期调度。misfire、Cron

Quartz:Java编写的开源的任务调度作业框架 类似Timer之类定时执行的功能,但是更强大Quartz.NET:是把Quartz转成C# NuGet...

.net Windows服务发布、安装、卸载、监听脚本。服务调试

一、脚本 为方便不用每次都去写安装卸载的脚本1.安装脚本@echooff @echo开始安装【服务】 %SystemRoot%\Microsoft.NET\Fr...

c、VB.net中全角半角转换方法

///&lt;summary&gt; ///转全角的函数(SBCcase) ///&lt;/summary&gt; ///&lt;paramname=&quot;input&quot;&gt;任意字符串...

.net mvc分部页,.net core分部页

.net分部页的三种方式第一种:@Html.Partial(&quot;_分部页&quot;)第二种:@{ Html.RenderPartial(&quot;分部页&quot;);}...

.net实现QQ邮箱发送邮件功能

1、微软已经帮我们封装好了发送邮件的类MailMessage,MailMessage类构造一些邮件信息,然后通过SmtpClient进行邮件发送。Mai...

StackExchange.Redis操作redis(net core支持)

官方git开源地址https://github.com/StackExchange/StackExchange.Redis官方文档在docs里边都是官方的文档通过nuget命令下...

windows 自带的netsh进行端口映射

使用netsh 把本地任意ip的25566端口 映射到192.168.81.234的25565端口netshinterfaceportproxyaddv4tov4listenaddress=0.0....

确保.net程序始终以管理员身份运行

usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Threading.Tasks; ...

ASP.net Timer细节处理

Timer的用法:1:本人称之为计时器,是asp.net官方的一种。用法即是计时所用 2:关于计时有很多中方式,本人学识有限,暂...

.net core 使用session

tip:net core 2.2后可以直接启用session了,不用在自己添加一次session依赖,本身就添加了使用nuget添加引用Microsoft.AspN...

通俗易懂,什么是.net?什么是.net Framework?什么是.net core?

朋友圈@蓝羽 看到一篇文章写的太详细太通俗了,搬过来细细看完,保证你对.NET有个新的认识理解原文地址:https://www.cnblo...

asp.net core2.0 依赖注入 AddTransient与AddScoped的区别

asp.net core主要提供了三种依赖注入的方式其中AddTransient与AddSingleton比较好区别AddTransient瞬时模式:每次都获取一...
你之所以觉得时间一年比一年过得快,是因为时间对你一年比一年重要。
排名
13
文章
64
粉丝
20
评论
30
MUI框架页面间的传值指针
XingDy姐 : 不错哦
MUI框架页面间的传值指针
剑轩 : 接口的真实地址可以用xx/yy什么的代替哦,真实地址还是隐藏一下好
.NET EF 用户按钮权限
YOU : 可以,在写文章的时候,有需要写代码的地方,可以选择编辑器上的代...
.NET EF 用户按钮权限
剑轩 : 哈哈哈哈,你这个追女生的逻辑
EF三种模式解析
剑轩 : 好文采!
重要sql语句和linq,lamdba分组条件查询语句
剑轩 : 开头那句诗句写得很好哇!
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
远望岂能当归,岂能当归?