Coolite+Form网站后台身份验证
2009-12-17 17:29
525 查看
先来用coolite做个登录界面吧,既然用了coolite.
<ext:ScriptManagerrunat="server">
</ext:ScriptManager>
<ext:Windowrunat="server"Width="350"ButtonAlign="Right"BodyStyle="padding:20px;"
Height="180"Title="登录后台管理"Draggable="false"Closable="false"Maximizable="false"
Modal="true"Icon="UserGo"Resizable="false"Plain="true">
<Body>
<ext:FormPanelID="login"runat="server"Frame="true"BodyStyle="padding:10px;"BaseCls="x-plan">
<Body>
<ext:FormLayoutID="FormLayout1"runat="server"LabelWidth="60">
<ext:AnchorHorizontal="100%">
<ext:TextFieldID="txtUserName"runat="server"FieldLabel="用户名"AllowBlank="false"
BlankText="请输入管理员帐号!">
</ext:TextField>
</ext:Anchor>
<ext:AnchorHorizontal="100%">
<ext:TextFieldID="txtPassWord"InputType="Password"runat="server"FieldLabel="密 码"
AllowBlank="false"BlankText="请输入正确的管理员口令!">
</ext:TextField>
</ext:Anchor>
</ext:FormLayout>
</Body>
</ext:FormPanel>
</Body>
<Buttons>
<ext:ButtonID="btnLogin"runat="server"Text="登录"Type="Submit"Icon="ServerGo">
<AjaxEvents>
<ClickOnEvent="BtnLogin_Click"Before="returnlogin.getForm().isValid();">
<EventMaskShowMask="true"Msg="正在验证登录,请稍候..."/>
</Click>
</AjaxEvents>
</ext:Button>
<ext:ButtonID="Button2"runat="server"Text="重置"Type="Reset"Icon="ArrowRefreshSmall">
<Listeners>
<ClickHandler="login.getForm().reset();"/>
</Listeners>
</ext:Button>
</Buttons>
</ext:Window>
上图为效果.进行了基本的验证.接下来是BtnLogin_Click登录事件处理.首先是进行数据查询验证:
///<summary>
///检查用户名与密码是对正确
///</summary>
///<paramname="username">用户名</param>
///<paramname="password">MD5密码</param>
///<returns></returns>
publicboolcheckLogin(stringusername,stringpassword)
{
stringsql="select*fromUserInfowhereName=@nameandPass=@pass";
OleDbParameter[]param=newOleDbParameter[]
{
newOleDbParameter("@name",username),
newOleDbParameter("@pass",password)
};
DataTabledt=DbHelper.GetDataTable(sql,CommandType.Text,param);
if(dt.Rows.Count>0)
{
returntrue;
}
else
{
returnfalse;
}
}
理论的文章有好多,解释也挺详细,但就是看的头痛.我就只讲重点,我的验证是怎么实现的了.先来看下网站结构:
manager为后台管理的页面,我们需要登录之后才能允许访问后台管理里的页面.自己来作判断感觉太麻烦.因为MS已经有现成的基于网站的身份验证.这里我选择了Form对manager进行身份验证:
首先是在web.config里进行配置:
<configuration>
在这个结点下配置如下:
<!--配置拒绝匿名用户的文件夹-->path指定了要验证的文件夹,denyusers=”?”是拒绝没有经过授权的用户访问.然后在
<locationpath="manager">
<system.web>
<authorization>
<denyusers="?"/>
</authorization>
</system.web>
</location>
<system.web>下配置Form验证:
<!--
通过<authentication>节可以配置ASP.NET用来
识别进入用户的
安全身份验证模式。
-->
<authenticationmode="Forms">
<formsloginUrl="Login.aspx"name=".ASPXAUTH"timeout="30"path="/"/>
</authentication>
loginUrl指定匿名用户到登录界面,name是cookie的名字,后面会用到.这样配置就可以了,也可以在manager文件夹下建立web.config进行配置.这里就不说了.
这下就来看下BtnLogin_Click事件里是怎么处理Form验证的.
protectedvoidBtnLogin_Click(objectsender,AjaxEventArgse)
{
stringusername=txtUserName.Text.Trim();
stringpassword=this.txtPassWord.Text;
//MD5加密密码
stringmd5_pass=MD5.Encrypt(password);
if(checkLogin(username,md5_pass))
{
FormsAuthenticationTicketTicket=newFormsAuthenticationTicket(1,username,
DateTime.Now,DateTime.Now.AddMinutes(30),false,"/");//建立身份验证票对象
stringHashTicket=FormsAuthentication.Encrypt(Ticket);//加密序列化验证票为字符串
HttpCookieUserCookie=newHttpCookie(FormsAuthentication.FormsCookieName,HashTicket);
//生成Cookie
Context.Response.Cookies.Add(UserCookie);//输出Cookie
//Context.Response.Redirect(Context.Request["ReturnUrl"]);//重定向到用户申请的初始页面
Response.Redirect("~/manager/ViewPort.aspx");
}
else
{
Ext.Msg.Show(newMessageBox.Config
{
Title="返回提示",
Message="用户名或密码错误,请确认!",
Icon=MessageBox.Icon.ERROR,
Buttons=MessageBox.Button.OK
});
}
}
代码里的注释写的比较清楚了,就不多浪费文字了.注销代码:
FormsAuthentication.SignOut();
欢迎加入Coolite中文社区:
相关文章推荐
- Coolite+Form网站后台身份验证
- Coolite+Form网站后台身份验证
- 自定义Sharepoint网站Form身份验证时的登录页面
- 常用网站后台与前台表单的有效性复杂验证(net+jqury+ajax)不用验证控件方法
- ASP.NET在IE10中Form表单身份验证失效问题解决方法
- IE通过代理访问网站持续提示需要身份验证
- 微软自带的Form身份验证机制
- 分别用(Windows/Form/Soap/WebService)实现用户身份验证(含示例代码下载)
- 基于Form的web身份验证--C#实施攻略
- 配置sharepoint网站为Form表单验证
- form 身份验证 角色管理
- 开发FORM 身份验证 Web 应用程序
- form身份验证通过后,只能用FormsAuthentication.RedirectFromLoginPage
- ASP.NET在IE9,IE10,IE11中Form表单身份验证失效问题解决方法
- 常用网站后台与前台表单的有效性复杂验证(net+jqury+ajax)不用验证控件方法
- 常用网站后台与前台表单的有效性复杂验证(net+jqury+ajax)不用验证控件方法
- 网站构建三(身份验证)
- coolite Form表单验证之自定义验证
- ASP.NET在IE10,IE11中Form表单身份验证失效问题解决方法
- ASP.NET MVC Form身份验证