下面请跟着小编一起来了解下身份验证和授权,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!
今天闲着无聊.想起来了身份验证.感觉良好.贴出下列代码:
HTML代码
1%@ Page language="c#" Codebehind="" AutoEventWireup="false" Inherits="身份验证._02Login" %
2!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
3HTML
4 HEAD
5 title02Login/title
6 meta name="GENERATOR" Content="MicrosoftVisualStudio .NET 7.1"
7 meta name="CODE_LANGUAGE" Content="C#"
8 meta name="vs_defaultClientScript" content="JavaScript"
9 meta name="vs_targetSchema" content=""
10 /HEAD
11 body MS_POSITIONING="GridLayout"
12 form method="post" runat="server"
13 FONT face="宋体"
14TABLE
15cellSpacing="1" cellPadding="1" width="446"
16TR
17 TD
18 runat="server"用户名称://TD
19 TD
20 runat="server" Width="183px"//TD
21 TD
22 runat="server" ErrorMessage="用户名不能为空!" ControlToValidate="tbName"//TD
23/TR
24TR
25 TD
26 runat="server"密码://TD
27 TD
28 runat="server" Width="183px"//TD
29 TD
30 runat="server" ErrorMessage="密码不能为空!" ControlToValidate="tbPass"//TD
31/TR
32TR
33 TDFONT face="宋体"是否保存Cookie/FONT/TD
34 TD
35 runat="server"//TD
36 TD/TD
37/TR
38/TABLE
39
40runat="server" Width="78px" Text="登录"/
41asp:HyperLink
42runat="server" NavigateUrl=""
43 /form
44 /body
45/HTML
.cs代码如下
private void btnLoginBetter_Click(object sender, e)
{
if ( == "admin" && == "admin")
{
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,,DateTime.Now,DateTime.Now.AddMinutes(30),,"User");//创建一个验证票据
string cookieStr = ()进行加密
HttpCookie cookie = new HttpCookie(,);创建一个cookie,cookie名为设置的名,值为加密后的数据,
if ()//判断用户是否选中保存cookie
= 获取过期时间
= 设置保存路径
();
string strRedirect;
strRedirect = Request["ReturnUrl"];//取出返回url
if (strRedirect == null)
strRedirect = "";
(,);
}
else
{
Response.Write("scriptalert('帐号或密码错误!');self.location.href='02'/script");
}
}
HTML代码
body MS_POSITIONING="GridLayout"
form method="post" runat="server"
FONT face="宋体"
asp:Label runat="server"用户名称:/asp:Label
asp:Label runat="server"身份:/asp:Label
asp:Label runat="server"/asp:Label
asp:Label runat="server"/asp:Label
asp:Button
runat="server" Text="注销" Width="101px"/asp:Button/FONT
/form
/body
后置代码
private void Page_Load(object sender, 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: 该调用是 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, e)
{
FormsAuthentication.SignOut();//注销票
Response.Redirect("",true);返回页面
}
webconfig配置如下
authentication mode="Forms"
forms name=".SecurityDemo" loginUrl=""//.SecurityDemo为cookie名,
/forms
/authentication
authorization
deny users="?"/ //拒绝所有匿名用户
allow roles="admins"///允许管理级别用户访问
/authorization
自我感觉ASP写多了,一般是用session进行判断用户是否合法,但在一个项目中使用身份验证,基本上所有页面都要验证才能访问,感觉有点迁强.但可以在web.config页面对指定的页面设置权限,设置代码如下
location path="admin.aspx"
system.web
authorization
deny users="?" /
/authorization
/system.web
/location
如果只有几个页面设置如上代码,感觉还可以接受.但页面多了岂不是要把人累死呀..
可能是小的项目做多了,大项目没接触过.请高手给指点具体用途呀.不甚感激.
/paleyyang/archive//10/21/536147.html