asp.net安全 form身份验证和用session判断验证有什么区别??怎么设置页面的访问权限?就是说有很多页面只能登录的用户进行查看,不能直接在地址栏输入来访问,那是不是要在每个页面的page-load事件中判断session?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 form身份验证,我很汗颜没用过。怎么设置页面的访问权限?用户登录时就将权限串存入session中,在相关页面判断即可。每个页面的page-load事件中判断session??不需每个页面的pageload里判断,写一个类,在需要的页面里基层该类。using System;using System.Collections.Generic;using System.Text;using System.Web.UI;/// <summary>///pageSession 的摘要说明/// </summary>namespace Com.PubClass { public abstract class pageSession : Page { private bool _isadmin; protected bool IsAdmin { get { return _isadmin; } set { _isadmin = value; } } protected override void OnLoad(EventArgs e) { try { if (Session["UserLoginID"] != null) { this.IsAdmin = true; } else { Session.Abandon(); Response.Write("<script>alert('用户登录超时,请重新登录!');top.location.href='" + ResolveUrl("~/login.aspx") + "';</script>"); Response.End(); } } catch (Exception serviceErr) { Response.Write("会话已过期!<br/><b>详细信息:</b>" + serviceErr.Message.ToString()); Response.End(); } base.OnLoad(e); } }}在需要session验证的页面里继承该类:public partial class Aspx_Manage_Index: pageSession{ protected void Page_Load(object sender, EventArgs e) { }} 不能直接在地址栏输入来访问==========page_load中清空页面缓存即可 Response.Buffer = true; Response.ExpiresAbsolute = System.DateTime.Now.AddHours(-2); Response.CacheControl = "no-cache"; Response.AddHeader("pragma", "no=cache"); 设置basepage判断sessionforms验证就是利用Cookie或者Session来控制用户对页面的访问 forms验证很便捷、实现退出功能只需2句代码1、在根目录下修改配置文件<authentication mode="Forms"> <forms name="xiaocookies" loginUrl="~/admin/login.aspx"/></authentication>2、admin目录下创建一个web.config<system.web> <authorization> <deny users="?"/><!--表示拒绝未通过验证的用户访问当前目录--> <!--如果用户访问admin目录下的页面,,此时将会转到admin/login.aspx,上面定义了loginUrl--> </authorization> </system.web>3、怎么让用户通过验证呢?在admin/login.aspx登录事件中写入下面的代码: protected void SetDom(string userId)//省略了用户查询和验证 { FormsAuthentication.SetAuthCookie(userId,true);//给userId用户发放权限 Response.Redirect("menu.htm");//转到admin/menu.htm页面 } 4、退出代码://我这里用的是.ashx文件public void ProcessRequest (HttpContext context) {System.Web.Security.FormsAuthentication.SignOut();//context.Session.RemoveAll(); context.Response.Redirect("login.aspx");} 很简单的if (Session["UserLoginID"] != null) { // 提示没有登录 } else { //登录了 } 在Web.Config里面做一个配置,用户不登录,就直接跳转到登录界面,只有登录通过,才能够看到别的页面。 .net上传显示进度条解决方案 把字符串"<BR>内容"赋给TextBox.Text 为什么出错 MasterPage中使用CSS的问题 在线等啊 急 请教高手啊 ~~~~~~~~~~~~~~~ 祝各位新年快乐,狗年走狗屎运:) 共享:根据省份证号前6位数字生成的三级联动下拉菜单! 关于一个很奇怪的访问情况 急,发布asp.net报错 为什么在我的首页(用.net做的)里的文本框和按钮都不显示出来?谢谢,在线等待! 能否将一个文本文件存放在内存中? 用户控件的调用问题 .net怎么记录用户上次登录时间 Bitmap这行代码错在哪里了????????
用户登录时就将权限串存入session中,在相关页面判断即可。每个页面的page-load事件中判断session??
不需每个页面的pageload里判断,写一个类,在需要的页面里基层该类。using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI;/// <summary>
///pageSession 的摘要说明
/// </summary>
namespace Com.PubClass {
public abstract class pageSession : Page {
private bool _isadmin;
protected bool IsAdmin {
get {
return _isadmin;
}
set {
_isadmin = value;
}
} protected override void OnLoad(EventArgs e) {
try {
if (Session["UserLoginID"] != null) {
this.IsAdmin = true;
} else {
Session.Abandon();
Response.Write("<script>alert('用户登录超时,请重新登录!');top.location.href='" + ResolveUrl("~/login.aspx") + "';</script>");
Response.End();
}
} catch (Exception serviceErr) {
Response.Write("会话已过期!<br/><b>详细信息:</b>" + serviceErr.Message.ToString());
Response.End();
}
base.OnLoad(e);
}
}
}在需要session验证的页面里继承该类:
public partial class Aspx_Manage_Index: pageSession
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
==========
page_load中清空页面缓存即可 Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddHours(-2);
Response.CacheControl = "no-cache";
Response.AddHeader("pragma", "no=cache");
forms验证就是利用Cookie或者Session来控制用户对页面的访问
1、在根目录下修改配置文件<authentication mode="Forms">
<forms name="xiaocookies" loginUrl="~/admin/login.aspx"/>
</authentication>2、admin目录下创建一个web.config
<system.web>
<authorization>
<deny users="?"/><!--表示拒绝未通过验证的用户访问当前目录-->
<!--如果用户访问admin目录下的页面,,此时将会转到admin/login.aspx,上面定义了loginUrl-->
</authorization>
</system.web>
3、怎么让用户通过验证呢?
在admin/login.aspx登录事件中写入下面的代码: protected void SetDom(string userId)//省略了用户查询和验证
{
FormsAuthentication.SetAuthCookie(userId,true);//给userId用户发放权限
Response.Redirect("menu.htm");//转到admin/menu.htm页面
}
public void ProcessRequest (HttpContext context) {
System.Web.Security.FormsAuthentication.SignOut();
//context.Session.RemoveAll();
context.Response.Redirect("login.aspx");
}
if (Session["UserLoginID"] != null) {
// 提示没有登录
} else {
//登录了
}