使用FormsAuthenticationTicket进行登陆验证
if (账号密码验证成功)
{
//登陆成功 Session["User"] = account;
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket
(1,
account.ID.ToString(),
DateTime.Now,
DateTime.Now.AddDays(1),
true,
"1,5,7", //可以存储role
"/"
);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket));
cookie.HttpOnly = true;
HttpContext.Response.Cookies.Add(cookie); return RedirectToAction("Index", "Admin");
}
需要使用的Role验证的地方
if (User.IsInRole("1"))
{
//用户拥有“1”角色权限
}
在需要,验证的Controller、Action上面添加注解属性,比如这个Action 只允许RoleID 为包含1或2或3的访问,而当前用户RoleID为(1、5、7)就是用户有权访问了。
[Authorize(Roles="1,2,3")]
public ActionResult Index()
{
return View();
}
需要配置web.config
<authentication mode="Forms">
<forms loginUrl="~/Login/Index" timeout="2880" />
</authentication>
<roleManager enabled="true" defaultProvider="CustomRoleProvid">
<providers>
<clear/>
<add name="CustomRoleProvid" type="HotelShow.CustomRoleProvider"/> <!--自定义获取Role的方法-->
</providers>
</roleManager>
CustomRoleProvider类的需要继承RoleProvider,实现GetRolesForUser方法
public override string[] GetRolesForUser(string username)
{
var cookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
var ticket = FormsAuthentication.Decrypt(cookie.Value);
string role = ticket.UserData;
return role.Split(',');
}
使用FormsAuthenticationTicket进行登陆验证的更多相关文章
- 【Java EE 学习 70 上】【数据采集系统第二天】【数据加密处理】【登陆验证】【登陆拦截器】【新建调查】【查询调查】
一.数据加密处理 这里使用MD5加密处理,使用java中自带加密工具类MessageDigest. 该类有一个方法digest,该方法输入参数是一个字符串返回值是一个长度为16的字节数组.最关键的是需 ...
- ASP.NET MVC 自己实现登陆验证过滤器
1.首先添加一个过滤器类,并实现接口中对应的方法 public class YLFAuthorizeAttribute : FilterAttribute, IAuthorizationFilter ...
- python学习 登陆验证
#!/usr/bin/env python #-*- coding=utf-8 -*- #----------------导入模块------------------------------ impo ...
- tornado web高级开发项目之抽屉官网的页面登陆验证、form验证、点赞、评论、文章分页处理、发送邮箱验证码、登陆验证码、注册、发布文章、上传图片
本博文将一步步带领你实现抽屉官网的各种功能:包括登陆.注册.发送邮箱验证码.登陆验证码.页面登陆验证.发布文章.上传图片.form验证.点赞.评论.文章分页处理以及基于tornado的后端和ajax的 ...
- 【Java EE 学习 20】【使用过滤器实现登陆验证、权限认证】【观察者模式和监听器(使用监听器实现统计在线IP、登录IP 、踢人功能)】
一.使用过滤器实现登录验证.权限认证 1.创建5张表 /*使用过滤器实现权限过滤功能*/ /**创建数据库*/ DROP DATABASE day20; CREATE DATABASE day20; ...
- springaop实现登陆验证
1.首先配置好springmvc和springaop 2.先写好登陆方法,通过注解写代理方法 通过代理获得登陆方法的参数方法名,然后再aop代理方法内进行登陆验证 贴出代码 package com.h ...
- angularjs中$http、$location、$watch及双向数据绑定学习实现简单登陆验证
使用$http.$location.$watch及双向数据绑定等实现简单的用户登陆验证,记录备忘: 1.$http模拟从后台获取json格式的数据: 2.$watch实时监控数据变化: 3.$loca ...
- MVC用户登陆验证及权限检查(Form认证)
1.配置Web.conf,使用Form认证方式 <system.web> <authentication mode="None" /> ...
- Java的登陆验证问题
java中的登陆验证问题可以有多种方式进行验证,通过拦截器功能完成,可以通过过滤器功能完成,也可以简单的代码在JSP页面中单独完成,其中都 涉及到一个关键的验证步骤,这个验证原理ASP,PHP,JAV ...
随机推荐
- webrtc 音频一点相关知识
采样频率: 44.1kHz ,它的意思是每秒取样44100次 .8kHz 8000次, 16kHz 160000次 比特率: 比特率是大家常听说的一个名词,数码录音一般使用16比特 ...
- 解决jsp表达式不能解析的问题
在jsp页面用了表达式,但是出现了表达式不能解析的问题 出现的页面如下 原因:web.xml的版本过低,maven自动生成的web.xml版本为2.3,只有2.3以上的版本才支持表达式 解决方法:改w ...
- Windows10下pip的配置文件设置
pip.ini的内容: [global] index-url = http://mirrors.aliyun.com/pypi/simple trusted-host = mirrors.aliyun ...
- HDU 6050 17多校2 Funny Function(数学+乘法逆元)
Problem Description Function Fx,ysatisfies:For given integers N and M,calculate Fm,1 modulo 1e9+7. ...
- SQL server类型转换
1. CAST函数 语法: CAST ( expression AS data_type [ ( length ) ] ) | | | |关键字 表达式或值 要转换成的数据类型 最大长度 示例: SE ...
- Oracle账户管理
登录:conn 用户名/口令创建用户create user 用户名 identified by 口令修改密码password 用户名删除用户drop user 用户名如果要删除的用户已经创建表,那么再 ...
- redis实现api限流
redis官方给出了参考文档:INCR 这里参考第一种方法,使用token bucket实现:每个用户每秒有一个Counter: func RateLimiter(uid string, rlType ...
- jupyter notebook远程服务器终端连接
如下图
- selenium和PhantomJS的使用
利用selenium来进行爬取数据 import time from selenium import webdriver # 创建phantomjs浏览器对象 driver = webdriver.P ...
- js知识点: 数组
1.行内元素 margin padding 左右值都有效,上下值都无效 2.var ev = ev || window.event document.documentElement.clientW ...