请教1个建站文件存放问题,再请教一个判断登陆问题
1、以前建站或做的系统都不大,所以产生的WEB文件不是太多,所以都放在一个目录里。现在系统大了,请问:通常的做法,是否为每个模块建一个目录?
2、判断是否登陆,在asp时代做法是一般在每个页面开头加一个<!—— #include file=判断文件——>,.net时代应该如何做方便?
问题点数:20、回复次数:4Top
1 楼jxufewbt(我的目标是5星)回复于 2005-10-30 10:06:57 得分 10
1、先按功能模块分目录,然后再每个模块目录下在按程序的类别分目录:比如说,.ascx文件放在UserControl目录下,.aspx文件放在Page目录下,单独的.cs文件放在Operate目录下。
2、如果你是用Session的话,只要判断Session是否为空就可以,用Cookie也是一样。Top
2 楼chenakun(危言耸听)回复于 2005-10-30 10:47:05 得分 0
“如果你是用Session的话,只要判断Session是否为空就可以,用Cookie也是一样。”
难道在每一页都写一次判断吗?Top
3 楼luck0235(风平浪静时人人都能掌舵)回复于 2005-10-30 11:01:07 得分 10
一、自己觉得方便就好,没固定模式的。
二、这种功能可分两种做法,一是基于Cookie的验证,asp.net提供了完善的机制:Form验证,你只需简单的配制Web.Config文件即可,建议参阅MSDN中相关资料。二是基于Session的验证,实现原理大至跟你所说的Asp时代的做法一样,即在每个页面加载前判断Session值是否存在。ASP时代大多使用的#Include来调用一个验证文件,而在.net中则通常使用面向对象的一些办法,比如为所有需要验证的页面做一个父类,这个父类继承Page,在这个父类中进行Session验证,然后让所有需要验证的页面再继承它,如:
public class BasePage : System.Web.UI.Page
{
protected override void OnInit (EventArgs e)
{
if(Session["Name"] == null)
{
//跳转到登陆页
Response.Redirect("~/Deny.aspx");
}
}
}
需要验证页面:
public class Friend : BasePage
......Top
4 楼jxufewbt(我的目标是5星)回复于 2005-10-30 11:01:54 得分 0
“如果你是用Session的话,只要判断Session是否为空就可以,用Cookie也是一样。”
难道在每一页都写一次判断吗?
-------------------------------------------------------------------------------------
这很难吗?只要
if (Session["xxx"]==null)
{
}
这比你在每个页面开头加一个<!—— #include file=判断文件——>,要方便多了吧?Top




