• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > ASP.NET Forms身份认证

ASP.NET Forms身份认证

作者:《一个好人》 字体:[增加 减小] 来源:互联网 时间:2017-05-11

《一个好人》通过本文主要向大家介绍了asp.net,asp net培训,asp和asp.net的区别,零基础学asp.net,c#和asp.net的区别等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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>
</div>

admin文件夹中 Web.config 代码:

<?xml version="1.0"?>
<configuration>
 <system.web>
 <authorization>
 <allow roles="admin" />
 <deny users="*"/>
 </authorization>
 </system.web>
</configuration>
</div>

teacher文件夹中 Web.config 代码:

<?xml version="1.0"?>
<configuration>
 <system.web>
 <authorization>
 <allow roles="teacher" />
 <deny users="*"/>
 </authorization>
 </system.web>
</configuration>
</div>

student文件夹中 Web.config 代码:

<?xml version="1.0"?>
<configuration>
 <system.web>
 <authorization>
 <allow roles="student" />
 <deny users="*"/>
 </authorization>
 </system.web>
</configuration>
</div>

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);
}
</div>

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); //这样当前用户就拥有角色信息了
 }
 }
}
</div>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Asp.net SignalR 应用并实现群聊功能 开源代码
  • asp.net动态更新
  • asp.net利用母版制作页脚效果
  • Asp.Net服务器发送HTTP标头后无法设置内容类型的问题解决
  • 使用asp.net mvc,boostrap及knockout.js开发微信自定义菜单编辑工具(推荐)
  • 详解ASP.NET MVC 常用扩展点:过滤器、模型绑定
  • ASP.NET Core发送邮件的方法
  • 在ASP.NET Core 中发送邮件的实现方法(必看篇)
  • ASP.NET MVC从视图传参到控制器的几种形式
  • Asp.net core WebApi 使用Swagger生成帮助页实例

相关文章

  • 2017-05-11C# 小数位数保留的方法集锦
  • 2017-05-11ASP.NET中实现把form表单元素转为实体对象或集合
  • 2017-05-11asp.net(vb.net)获取真实IP的函数
  • 2017-05-11ASP.NET中repeater嵌套实现代码(附源码)
  • 2017-05-11如何取消.net后台线程的执行
  • 2017-05-11RLCSS分词系统更新下载
  • 2017-05-11Attribute/特性心得随笔
  • 2017-05-11Microsoft .Net Remoting系列教程之三:Remoting事件处理全接触
  • 2017-05-11repeater 分列显示以及布局的实例代码
  • 2017-05-11asp.net 虚方法、抽象方法、接口疑问

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Windows Server 2012 R2 或 2016无法安装.Net 3.5.1
    • .Net 单例模式(Singleton)
    • .NET操作Excel实例分享
    • c# static 静态数据成员
    • 微信公众平台开发之发送文本消息.Net代码解析
    • asp.net中动态改变网页标题的代码
    • asp.net内置对象 Response对象使用介绍
    • asp.net GridView模板列中实现选择行功能
    • DropDownList绑定数据表实现两级联动示例
    • 在ASP.NET 2.0中操作数据之三十六:在DataList里编辑和删除数据概述

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有