全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

ASP.NET Forms身份认证

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小时内与您取得联系。