动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ ASP.NET技巧 ]的信息

本月文章推荐
.关于asp.net 1.0升级到asp.net 2.
.在asp.net 页面中加入skype功能.
..NET 应用程序的性能提升应用技巧.
.ASP.NET 2.0 中配合 Master Page.
.Asp.net(c#)实现多线程断点续传.
.Asp.Net下通过切换CSS换皮肤.
.把ip转换成对应的城市名.
.ASP.NET 2.0下的条件编译.
.在.NET中,将竖表变横表(支持固定.
.使用 ASP.NET Atlas PageNavigat.
.ASP.NET中的Global.asax以及Web应.
.ASP.NET应用程序安全性问题.
.DataSet 添加数据集、行、列、主.
.一个极有可能引发ExecutionEngin.
.Asp.net中使用GDI+繪製圖形.
.在asp.net中实现会话状态基础.
.IBatisNet系列-执行存储过程.
.ASP.NET中使用数据处理插入数据注.
.为datagrid的自带分页添加首页、.
.ASP.Net中利用CSS实现多界面两法.

asp.net身份验证和授权

发表日期:2006-10-23 |


今天闲着无聊.想起来了ASP.NET身份验证.感觉良好.贴出下列代码:
login.aspx HTML代码

 
 1<%@ Page language="c#" Codebehind="02Login.aspx.cs" AutoEventWireup="false" Inherits="身份验证._02Login" %>
 2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 3<HTML>
 4    <HEAD>
 5        <title>02Login</title>
 6        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
 7        <meta name="CODE_LANGUAGE" Content="C#">
 8        <meta name="vs_defaultClientScript" content="JavaScript">
 9        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
10    </HEAD>
11    <body MS_POSITIONING="GridLayout">
12        <form id="Form1" method="post" runat="server">
13            <FONT face="宋体">
14                <TABLE id="Table1" style="Z-INDEX: 102; LEFT: 152px; WIDTH: 446px; POSITION: absolute; TOP: 80px; HEIGHT: 72px"
15                    cellSpacing="1" cellPadding="1" width="446" border="1">
16                    <TR>
17                        <TD>
18                            <asp:label id="Label1" runat="server">用户名称:</asp:label></TD>
19                        <TD>
20                            <asp:textbox id="tbName" runat="server" Width="183px"></asp:textbox></TD>
21                        <TD>
22                            <asp:requiredfieldvalidator id="RequiredFieldValidator1" runat="server" ErrorMessage="用户名不能为空!" ControlToValidate="tbName"></asp:requiredfieldvalidator></TD>
23                    </TR>
24                    <TR>
25                        <TD>
26                            <asp:label id="Label2" runat="server">密码:</asp:label></TD>
27                        <TD>
28                            <asp:textbox id="tbPass" runat="server" Width="183px"></asp:textbox></TD>
29                        <TD>
30                            <asp:requiredfieldvalidator id="RequiredFieldValidator2" runat="server" ErrorMessage="密码不能为空!" ControlToValidate="tbPass"></asp:requiredfieldvalidator></TD>
31                    </TR>
32                    <TR>
33                        <TD><FONT face="宋体">是否保存Cookie</FONT></TD>
34                        <TD>
35                            <asp:checkbox id="PersistCookie" runat="server"></asp:checkbox></TD>
36                        <TD></TD>
37                    </TR>
38                </TABLE>
39                <asp:button id="btnLoginBetter" style="Z-INDEX: 101; LEFT: 288px; POSITION: absolute; TOP: 240px"
40                    runat="server" Width="78px" Text="登录"></asp:button>
41                <asp:HyperLink id="HyperLink1" style="Z-INDEX: 103; LEFT: 456px; POSITION: absolute; TOP: 240px"
42                    runat="server" NavigateUrl="Default.aspx">HyperLink</asp:HyperLink></FONT>
43        </form>
44    </body>
45</HTML>
login.aspx.cs代码如下

 

private void btnLoginBetter_Click(object sender, System.EventArgs e)
  {
   if (this.tbName.Text == "admin" && this.tbPass.Text == "admin")
   {
    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,this.tbName.Text,DateTime.Now,DateTime.Now.AddMinutes(30),this.PersistCookie.Checked,"User");//创建一个验证票据
    string cookieStr = FormsAuthentication.Encrypt(ticket);进行加密
    HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName,cookieStr);创建一个cookie,cookie名为web.config设置的名,值为加密后的数据cookieStr,
    if (this.PersistCookie.Checked)//判断用户是否选中保存cookie
     cookie.Expires = ticket.Expiration;//获取cookie过期时间
    cookie.Path = FormsAuthentication.FormsCookiePath;//设置cookie保存路径
    Response.Cookies.Add(cookie);
    string strRedirect;
    strRedirect = Request["ReturnUrl"];//取出返回url
    if (strRedirect == null)
     strRedirect = "Default.aspx";
    Response.Redirect(strRedirect,true);

   }
   else
   {
    Response.Write("<script>alert('帐号或密码错误!');self.location.href='02login.aspx'</script>");
   }
  }


 

Default.aspx HTML代码

 

<body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
            <FONT face="宋体">
                <asp:Label id="Label1" style="Z-INDEX: 106; LEFT: 224px; POSITION: absolute; TOP: 72px" runat="server">用户名称:</asp:Label>
                <asp:Label id="Label2" style="Z-INDEX: 102; LEFT: 220px; POSITION: absolute; TOP: 136px" runat="server">身份:</asp:Label>
                <asp:Label id="lbUser" style="Z-INDEX: 103; LEFT: 350px; POSITION: absolute; TOP: 79px" runat="server"></asp:Label>
                <asp:Label id="lbSf" style="Z-INDEX: 104; LEFT: 355px; POSITION: absolute; TOP: 133px" runat="server"></asp:Label>
                <asp:Button id="btnLogout" style="Z-INDEX: 105; LEFT: 261px; POSITION: absolute; TOP: 192px"
                    runat="server" Text="注销" Width="101px"></asp:Button></FONT>
        </form>
    </body>
后置代码

 

private void Page_Load(object sender, System.EventArgs e)
  {
   this.lbUser.Text = User.Identity.Name;
   if (User.IsInRole("Admin"))
    this.lbSf.Text = "Admin";
   else
    this.lbSf.Text = "User";
  }

  Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
 
  /**//// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.btnLogout.Click += new System.EventHandler(this.btnLogout_Click);
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion

  private void btnLogout_Click(object sender, System.EventArgs e)
  {
   FormsAuthentication.SignOut();//注销票
   Response.Redirect("login.aspx",true);返回login.aspx页面
  }


webconfig配置如下
    <authentication mode="Forms" >
  <forms name=".SecurityDemo" loginUrl="login.aspx">//.SecurityDemo为cookie名,
  </forms>
    </authentication>

 <authorization>
            <deny users="?"/> //拒绝所有匿名用户
            <allow roles="admins"/>//允许管理级别用户访问
   </authorization>
自我感觉ASP写多了,一般是用session进行判断用户是否合法,但在一个ASP.NET项目中使用身份验证,基本上所有页面都要验证才能访问,感觉有点迁强.但可以在web.config页面对指定的页面设置权限,设置代码如下
  <location path="admin.aspx">
    <system.web>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
  </location>
如果只有几个页面设置如上代码,感觉还可以接受.但页面多了岂不是要把人累死呀..
可能是小的项目做多了,大项目没接触过.请高手给指点具体用途呀.不甚感激.

http://www.cnblogs.com/paleyyang/archive/2006/10/21/536147.html

上一篇:虚拟主机下asp.net 2.0的导航控件treeview,menu等出错 人气:4937
下一篇:asp.net项目运行的权限问题 人气:4932
浏览全部asp.net的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-8-21 Nucleus v3.33 多国语言版
2008-8-21 HDWiki v4.0 bulid 080821 UTF-8
2008-8-21 明科在线客服系统 v6.0
2008-8-21 KesionCMS v5.0.2 正式版 utf-8
2008-8-21 KesionEshop v5.0.2 正式版 utf-8
2008-8-21 HDWiki v4.0 bulid 080821 GBK
2008-8-21 新文互动酷站展示系统 v1.5
2008-8-21 Punbb v1.2.20 多国语言版
2008-8-21 QQ头像网 beta
2008-8-16 iLaba Player(小喇叭播放器) v2.
2008-8-16 DoubleClickFix 鼠标双击修正工具
2008-8-16 CrystalCPUID 4.15.2.451
2008-8-16 VeryCD 电驴(easyMule) 1.0.4 Bu
2008-8-16 uTorrent 1.8 Build 11813 - Sta
2008-8-16 比特精灵(BitSpirit) v3.3.2.287
2008-8-16 StayInTune音叉 v1.0 破解版
2008-8-16 iChing《周易》汉化补丁 v1.0
2008-8-16 Starmap星空图v1.0汉化破解版
  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号