asp.net程序开发,用户根据角色访问对应页面以及功能。

项目结构如下图:
根目录 Web.config 代码:
<?xml version="1.0" encoding="utf-8"?>
<!--
有关如何配置 ASP.NET 应用程序的详细消息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Forms">
<forms loginUrl="login.aspx"></forms>
</authentication>
<!--<authorization>
<allow users="*"></allow>
</authorization>-->
</system.web>
</configuration>
admin文件夹中 Web.config 代码:
<?xml version="1.0"?> <configuration> <system.web> <authorization> <allow roles="admin" /> <deny users="*"/> </authorization> </system.web> </configuration>
teacher文件夹中 Web.config 代码:
<?xml version="1.0"?> <configuration> <system.web> <authorization> <allow roles="teacher" /> <deny users="*"/> </authorization> </system.web> </configuration>
student文件夹中 Web.config 代码:
<?xml version="1.0"?> <configuration> <system.web> <authorization> <allow roles="student" /> <deny users="*"/> </authorization> </system.web> </configuration>
Login.aspx中登录成功后设置Cookie,设置Cookie代码:
protected void SetLoginCookie(string username, string roles)
{
System.Web.Security.FormsAuthentication.SetAuthCookie(username, false);
System.Web.Security.FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, username, DateTime.Now, DateTime.Now.AddDays(1), false, roles, "/");
string hashTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie userCookie = new HttpCookie(FormsAuthentication.FormsCookieName, hashTicket);
HttpContext.Current.Response.SetCookie(userCookie);
}
Global.asax 中进行身份验证:
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
HttpContext ctx = app.Context; //获取本次Http请求的HttpContext对象
if (ctx.User != null)
{
if (ctx.Request.IsAuthenticated == true) //验证过的一般用户才能进行角色验证
{
System.Web.Security.FormsIdentity fi = (System.Web.Security.FormsIdentity)ctx.User.Identity;
System.Web.Security.FormsAuthenticationTicket ticket = fi.Ticket; //取得身份验证票
string userData = ticket.UserData;//从UserData中恢复role信息
string[] roles = userData.Split(','); //将角色数据转成字符串数组,得到相关的角色信息
ctx.User = new System.Security.Principal.GenericPrincipal(fi, roles); //这样当前用户就拥有角色信息了
}
}
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# asp.net
# 身份认证
# forms验证
# ASP.NET Forms身份认证详解
# 一个简单的ASP.NET Forms 身份认证的实例方法
# 夹中
# 身份验证
# 转成
# 如下图
# 程序开发
# 应用程序
# debug
# compilation
# configuration
# web
# system
# http
# microsoft
# LinkId
# fwlink
# true
# aspx
# login
# loginUrl
# admin
相关文章:
建站之星logo尺寸如何设置最合适?
如何挑选高效建站主机与优质域名?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
如何正确选择百度移动适配建站域名?
深圳网站制作平台,深圳市做网站好的公司有哪些?
5种Android数据存储方式汇总
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
如何快速登录WAP自助建站平台?
建站之星如何实现五合一智能建站与营销推广?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
内部网站制作流程,如何建立公司内部网站?
香港服务器部署网站为何提示未备案?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
盐城做公司网站,江苏电子版退休证办理流程?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
西安大型网站制作公司,西安招聘网站最好的是哪个?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
建站VPS选购需注意哪些关键参数?
建站之星如何快速更换网站模板?
济南企业网站制作公司,济南社保单位网上缴费步骤?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
阿里云网站制作公司,阿里云快速搭建网站好用吗?
建站之星如何快速生成多端适配网站?
如何用wdcp快速搭建高效网站?
如何通过商城自助建站源码实现零基础高效建站?
如何快速查询域名建站关键信息?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
相册网站制作软件,图片上的网址怎么复制?
,想在网上投简历,哪几个网站比较好?
如何在宝塔面板创建新站点?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
岳西云建站教程与模板下载_一站式快速建站系统操作指南
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
建站主机类型有哪些?如何正确选型
北京的网站制作公司有哪些,哪个视频网站最好?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
定制建站哪家更专业可靠?推荐榜单揭晓
如何通过远程VPS快速搭建个人网站?
魔方云NAT建站如何实现端口转发?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
如何通过建站之星自助学习解决操作问题?
如何通过虚拟主机快速搭建个人网站?
建站之星后台密码遗忘如何找回?
如何通过PHP快速构建高效问答网站功能?
*请认真填写需求信息,我们会在24小时内与您取得联系。