ASP.NET 防止用户跳过登陆界面

1.在登陆页面的检查登陆成功代码后添加如下代码
Session["UserID"] = txtUserID.Text.Trim();
或者
Session["UserID"] = "OK";
例如,在我的 Login.aspx.cs 的登陆按钮响应事件中代码如下:
if (BaseClass.CheckUser(txtUserID.Text.Trim(), txtPwd.Text.Trim()))
{
Session["UserID"] = txtUserID.Text.Trim();
Response.Redirect("Main.aspx");
}
else
{
Response.Write("<script>alert('用户名或密码错误');location='Login.aspx'</script>");
}
2.然后在每个页面的Page_Load的开始处添加如下代码:
if (Session["UserID"] == null || Session["UserID"].ToString() == "")
{
Response.Write("<Script language='javascript'>window.top.location.href='Login.aspx';</Script>");
}
例如在我的 Main.aspx.cs 的Page_Load代码包含如下内容:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserID"] == null || Session["UserID"].ToString() == "")
{
Response.Write("<Script language='javascript'>window.top.location.href='Login.aspx';</Script>");
}
if (!IsPostBack)
{
}
}
3.试试看,呵呵 ,,,

时间: 2009-03-17

asp.net通过动态加载不同CSS实现多界面

方法一: 复制代码 代码如下: <%@page language="C#"%> <%@import namespace="System.Data"%> <script language="c#" runat="server"> public void page_load(Object obj,EventArgs e) {   //创建服务器端控件.   //指定的标记"LINK&q

ASP.NET简化编辑界面解决思路及实现代码

简化用户操作界面,添加功能一般没法简化,但是如果是在GridView做显示,编辑,更新与删除,会让用户在编辑,需要点击编辑铵钮,再进行编辑,或是取消编辑. 为了解决这个问题,Insus.NET想到一些改进的方法.可以参考下面演示: 以下内容于2011-11-07 9:20添加: 上面实现,只是使用Table加上GridView来组合. 其中,Gridveiw直接使用ItemTemplate模版,省略了EditItemTemplate模版.事件也省略了OnRowEditing与OnRowCance

在ASP.NET 2.0中操作数据之十八:在ASP.NET页面中处理BLL/DAL层的异常

导言 在一个使用了分层体系架构的ASP.NET web应用系统里处理数据,一般遵循以下几步: 1.确定业务逻辑层需要调用哪个方法,并且需要出入哪些参数.这些参数可以通过硬编码设置,程序自动设定,或者由用户输入. 2.调用此方法. 3.处理结果.当调用一个返回数据的BLL方法时,这包括绑定数据到Data Web服务器控件.而对于修改数据的BLL方法而言,这包括基于返回值的基础上执行某些动作,或者适当地处理在第二步中引发的异常. 正如我们在前一节里看到的,无论ObjectDataSource控件还是

ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法

如图: 上图的右边框不见了,使用 web开发工具调试,发现是内容器过大.于是想到了是jquery-easyui 对界面的"渲染"不正确引起. 起初以为是因为加了 处理重复的代码引起,但是去掉后总是依旧: 进而考虑到界面"渲染"的前后关系,于是尝试对代码片段进行延迟执行,问题解决.原问题脚本: 复制代码 代码如下: <script type="text/javascript"> if (window.__yltlClientScriptRegistKey == undefin

在ASP.NET 2.0中操作数据之十九:给编辑和新增界面增加验证控件

导言 在前面三节的示例中,GridView和DetailsView控件使用的是绑定列和CheckBoxField(绑定GridView和DetailsView时,通过智能标记可以令VS根据数据库自动增加对应的类型).当编辑GridView或者DetailsView中的一行时,非只读属性的绑定列将自动转为textbox,以便用户修改现有的数据.同样地,当在DetailsView控件中新增记录时,InsertVisible属性为true(默认值)的绑定列会呈现出空的textbox,以接受用户输入.C

ASP.Net中利用CSS实现多界面的两种方法

本文实例讲述了ASP.Net中利用CSS实现多界面的两种方法.分享给大家供大家参考.具体实现方法如下: 可以通过使页面动态加载不同CSS来实现多界面的效果: 方法一: 复制代码 代码如下: <%@page language="C#"%> <%@import namespace="System.Data"%> <script language="c#" runat="server"> publ

ASP.NET简化编辑界面解决思路及实现代码(2)

程序是需要不断改进,上午做了,下午再去看时,会觉它不够完美. 比如这个:http://www.jb51.net/article/33563.htm现在Insus.NET把它改为下面这个样子: 这篇与前一篇改进部分,也许大家会留意到动画演示,主要是GridVeiw的更新与删除会在每row都有.因此Insus.NET把它抽取出来,放在GridView外.致于一次性更新多笔记录,Insus.NET在很早之前已经录制过视频下载地址.还有一个就是删除,在每row第一列放了一个CheckBox,让用户可以选

在ASP.NET 2.0中操作数据之二十:定制数据修改界面

简介 GridView和DetailsView控件通过绑定列和CheckBox列,可以简化数据编辑界面制作,呈现只读,编辑和新增界面,我们不需要增加元素标记或编写任何额外代码就可以得到这些界面.然而,绑定列和CheckBox列呈现的界面却缺乏实际应用中经常用到的定制功能.为了对GridView和DetailsView的编辑.新增界面进行定制,需要用模板列(TemplateField)替换原有列. 在上节教程中我们讨论如何增加验证控件来定制数据编辑界面,而本节教程将演示如何使用Web控件对实际的数

在ASP.NET 2.0中操作数据之十五:在GridView的页脚中显示统计信息

导言 除了需要了解产品的单价.库存量和订货量,并按等级排序之外,用户可能还对统计信息感兴趣,比如说平均价格.库存总量等等.这些统计信息常常显示在报表最下面的一个统计行中.GridView控件可以含有一个页脚行,我们可以通过编程将统计数据插入到它的单元格里面去.这个任务给了我们以下3个挑战: 1.配置GridView以显示它的页脚行 2.确定统计数据.即我们应该如何计算平均价格还有库存总量? 3.将统计信息插入到页脚行的相应的单元格中 在本节教程中,我们将会看到如何去征服这些挑战.另外呢,我们将创

在ASP.NET 2.0中操作数据之十七:研究插入、更新和删除的关联事件

导言 当使用GridView.DetailsView或FormView控件的内建插入.编辑或删除特征时,在用户添加一条新记录或更新/删除一条现在记录的过程中发生了多个步骤.正如我们之前一节里所讨论的,在GridView中编辑一行时,保存(Update)和取消(Cancel)按钮将取代编辑(Edit)按钮,并且绑定列转换成TextBox.在用户更新了数据并点击保存按钮之后,下述步骤在回传时执行: 1.该GridView控件根据当前编辑行的唯一标识字段(通过DataKeyNames属性)组装它的Ob

在ASP.NET 2.0中操作数据之十六:概述插入、更新和删除数据

导言 结束前面的几节,我们已经探讨过了如何使用GridView.DetailsView和FormView控件来显示数据.这些控件简单地操作提供给它的数据.一般地,这些控件通过使用一个数据源控件,例如ObjectDataSource来存取数据.我们已经看过了ObjectDataSource是如何在ASP.NET页面和潜在的数据之间扮演一个代理的角色.当一个GridView需要显示数据时,它调用ObjectDataSource的Select()方法,这个方法转而调用一个来自我们的业务逻辑层(BLL)

在ASP.NET 2.0中操作数据之五十六:使用ObjectDataSource缓存数据

导言 就计算机科学而言,caching就是将所需要的数据或信息的备份放在某个地方,便于快速访问的这样一个过程.以数据处理(data-driven)程序为例,程序的大部分时间浪费在数据查询上.要提升这种程序的性能,通常的做法是将查询结果存放在程序的存储器里. ASP.NET 2.0提供了各种各样的缓存方式.对web页面和用户控件可以通过output caching进行缓存:同样我们可以通过ObjectDataSource 和SqlDataSource控件,在控件级(control level)对数

在ASP.NET 2.0中操作数据之四十六:使用SqlDataSource控件检索数据

导言 到目前为止,我们探讨的教程是由表现层,业务逻辑层和数据访问层构成的层次体系结构.数据访问层和业务逻辑层分别在教程第一和第二章提到.在Displaying Data With the ObjectDataSource 这篇教程里,我们探讨了怎样用ASP.NET 2.0的新控件--ObjectDataSource控件在表现层展示数据. 本教程到目前为止用这种层次结构来处理数据.然而绕过这种体系结构,通过直接把数据查询和业务逻辑放在Web页面上,也可以达到直接在ASP.NET页面上访问,插入,更

在ASP.NET 2.0中操作数据之三十六:在DataList里编辑和删除数据概述

导言 概述插入.更新和删除数据 里我们已经学习了如何使用GridView等控件来插入,更新删除数据.通过ObjectDataSource和其它数据控件仅仅只需要在智能标签里勾一下checkbox就完成了,不需要写任何代码.而DataList没有这些内置的功能.我们可以使用1.x 里的方法来实现这些功能.在本章我们将看到,DataList提供了一些事件和属性来完成我们的目的,为此我们需要写一些代码. 本章我们首先学习如何创建一个支持编辑和删除数据的DataList.后面的教程里我们将学习一些高级的

在ASP.NET 2.0中操作数据之六十六:在TableAdapters中使用现有的存储过程

导言: 在前面的文章里我们考察了如何让TableAdapters向导自动的创建存储过程.而在本文,我们将考察如何让TableAdapter使用现有的存储过程.由于Northwind数据库现有的存储过程很少,我们也需要考察如何在Visual Studio环境里手动向数据库添加新的存储过程. 注意:在第61章<在事务里对数据库修改进行封装>里我们向TableAdapter添加了一些方法以支持事务(比如 (BeginTransaction, CommitTransaction等).我们可以在不修改数

在ASP.NET 2.0中操作数据之三十:格式化DataList和Repeater的数据

导言 在前面的教程里我们学习了DataList提供了一些风格样式的属性.而且我们还学习了如何定义HeadStyle, ItemStyle, AlternatingItemStyle, 和SelectedItemStyle等属性的默认CSS.除了这四个属性外,DataList还提供了其它属性,比如Font, ForeColor, BackColor, 和BorderWidth.而Repeater没有提供任何这样的属性.如果你需要用Reperter来实现这些效果,你就需要在templates里直接写

在ASP.NET 2.0中操作数据之六十五:在TableAdapters中创建新的存储过程

导言: 本教程的Data Access Layer (DAL)使用的是类型化的数据集(Typed DataSets).就像我们在第一章<创建一个数据访问层>里探讨的一样,该类型化的数据集由强类型的DataTable和TableAdapter构成.DataTable描绘的是系统里的逻辑实体而TableAdapter引用相关数据库执行数据访问,包括对DataTable填充数据.执行返回标量数据(scalar data)的请求.添加,更新,删除数据库里的记录等. TableAdapter执行的SQL