aspx运行后空白?

bchy1 2008-05-17 07:31:20
为什么运行后全是空白,也没有错误信息提示?谢谢!
...全文
323 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
bchy1 2008-05-17
  • 打赏
  • 举报
回复
啊...我这是第一次用这个...不知道还得结帖呢!
你怎么这么急于结帖,好像你解决问题就是为了得分似的。
呵呵,开玩笑,我知道你肯定不是。
给你满分!
Haoze 2008-05-17
  • 打赏
  • 举报
回复
成功了就结贴吧。~_~
bchy1 2008-05-17
  • 打赏
  • 举报
回复
成功了!谢谢!以后还会多向你请教的。
Haoze 2008-05-17
  • 打赏
  • 举报
回复
就是加密。把12345变成一个32位的串。然后放到数据库中。

每个用户登录的时候,自动把她们输入的密码加密,和数据库中的比对,如果一样的,就登陆成功了。
bchy1 2008-05-17
  • 打赏
  • 举报
回复
using System;
using System.IO;
using System.Collections;
using System.Security.Cryptography;
using System.Text;

namespace news.Classes
{
/// <summary>
/// Md5 的摘要说明。
/// </summary>
public class Md5
{
/// <summary>
///
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
#region
public static string GetMD5(string s)
{
byte[] md5Bytes=Encoding.Default.GetBytes(s);
MD5 md5=new MD5CryptoServiceProvider();
byte[] cryptString=md5.ComputeHash(md5Bytes);
int len;
string temp=String.Empty;
len=cryptString.Length;
for(int i=0;i<len;i++)
{
temp+=cryptString[i].ToString("X2");
}
return temp.Substring(8,16).ToLower();
}
#endregion
}
}

这是加密函数,我看不懂
Haoze 2008-05-17
  • 打赏
  • 举报
回复
你要用数据库里面的Admin账户登录。

他的密码用Md5加密了的,所以你必须知道原始密码,你才能登录啊。

用数据库的sa登录没用的。

不过你可以自己写个123456,然后用md5吧123456加密,然后insert到数据库的管理员列表里面,就可以登陆了。
bchy1 2008-05-17
  • 打赏
  • 举报
回复
这是我登陆页面的代码:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

namespace news.NewsAdmin
{
/// <summary>
/// Login 的摘要说明。
/// </summary>
public class Login : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.TextBox password;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.TextBox adminuser;
protected System.Web.UI.WebControls.Button enter;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.Label info;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
this.enter.Click+=new System.EventHandler(this.enter_Click);

}
#endregion
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
#region
private void enter_Click(object sender,System.EventArgs e)
{
if(adminuser.Text.Trim().Length==0||password.Text.Trim().Length==0)
{
info.Text="你所填的用户名或密码为空,登陆失败!";
}
else
{
if(CheckAdmin(adminuser.Text.Trim(),password.Text.Trim()))
{
SaveStatus(adminuser.Text.Trim().ToString());
Response.Redirect("index.aspx");
}
else
{
info.Text="你所填的用户名或密码错误,登陆失败!";
}
}
}
#endregion
/// <summary>
///
/// </summary>
/// <param name="adminuser"></param>
#region
private void SaveStatus(string adminuser)
{
Session["adminuser"]=adminuser;
}
#endregion
/// <summary>
///
/// </summary>
/// <param name="adminuser"></param>
/// <param name="password"></param>
/// <returns></returns>
#region
private bool CheckAdmin(string adminuser,string password)
{
bool yes=false;
password=Classes.Md5.GetMD5(password.Trim());
SqlConnection conn=null;
SqlCommand cmd=null;
SqlDataReader dr=null;
string sql=string.Empty;
try
{
sql=string.Format("select password from [Admin] where adminuser='{0}'",adminuser);
conn=Classes.DataBase.GetConn();
conn.Open();
cmd=new SqlCommand(sql,conn);
dr=cmd.ExecuteReader();
if(dr.Read())
{
if(dr.GetString(0).Trim().Equals(password))
yes=true;
}
}
catch(Exception ex)
{
Response.Write(ex.Message);
}
finally
{
if(conn!=null)
conn.Close();
if(cmd!=null)
cmd.Dispose();
if(dr!=null)
dr.Close();
}
return yes;
}
#endregion

}
}
bchy1 2008-05-17
  • 打赏
  • 举报
回复
是,你说得太对了!“大概的猜测就是IsAdmin方法发现你不是Admin”,它就是觉得我不是管理员。因为我还没告诉我得另一个问题:登陆页面很正常,但我无论是用数据库sql里的用户登陆,还是用Admin表里的用户登陆,它都提示我用户名或密码错误。看来这两个问题联起来了,很有意思,是吧?那为什么我登陆会有错呢?
using System;

namespace news.Classes
{
/// <summary>
/// CheckAdmin 的摘要说明。
/// </summary>
public class CheckAdmin
{
/// <summary>
///
/// </summary>
#region
public static void IsAdmin()
{
string adminuser=string.Empty;
try
{
adminuser=System.Web.HttpContext.Current.Session["adminuser"].ToString();
}
catch
{
adminuser=string.Empty;
}
if(adminuser.Trim().Length==0)
{
System.Web.HttpContext.Current.Response.Write("<script>top.location.herf='Login.aspx';</script>");
System.Web.HttpContext.Current.Response.End();
}
}
#endregion
}
}
Haoze 2008-05-17
  • 打赏
  • 举报
回复
那你就跟进去,看CheckAdmin干了什么事情。

大概的猜测就是IsAdmin方法发现你不是Admin,就Response.Close()掉了。

然后页面肯定就白了。


先跟进去IsAdmin()函数,看看里面的代码干了什么。肯定可以找到端倪的,然后按图索骥,就知道原因了。
bchy1 2008-05-17
  • 打赏
  • 举报
回复
对,注释掉就没错了,呵呵。怎么改?
bchy1 2008-05-17
  • 打赏
  • 举报
回复
Haoze,谢谢你这么耐心。我想错误的原因是这样的:我项目名为news,它包含两个文件夹:Classes和NewsAdmin。而运行后空白的页面是在NewsAdmin里的,凡是用了Classes.CheckAdmin.IsAdmin();的页面都是空白,只有登陆页面没用它,能正常显示,所以我觉得问题在这儿。你觉得是这样吗?那我该怎么改呀?谢谢!
Haoze 2008-05-17
  • 打赏
  • 举报
回复
然后看GetClassName,
如果GetClassName出错的,只有两个地方出错。

要么是取数据阶段,但是这里会出黄页,不会一片空白。
那么就是Response.Write(ex)写出异常这里出错。这是有可能的,有可能写道某个标签里面去了,这时候可以通过查看页面源代码来看看是不是这样。

一步一步的缩小范围,肯定可以解决的。
Haoze 2008-05-17
  • 打赏
  • 举报
回复
Classes.CheckAdmin.IsAdmin(); //这里注释掉看看会不会错。

如果不出错,就是Classes.CheckAdmin.IsAdmin();出错
如果出错了,就是GetClassName出错了。

一步一步来。
bchy1 2008-05-17
  • 打赏
  • 举报
回复
不是一个页面空白,除了一个别的都空白,我也没看出差别啊,大家都没遇到过吗?谢谢!
bchy1 2008-05-17
  • 打赏
  • 举报
回复
<%@ Page language="c#" Codebehind="AdminClassName.aspx.cs" AutoEventWireup="false" Inherits="news.NewsAdmin.AdminClassName" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>AdminClassName</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:Label ID="Label1" style="Z-INDEX:101; LEFT:24px; POSITION:absolute; TOP:16px" Runat="server"
Width="80PX" Height="24px" ForeColor="red" Font-Bold="True">分类管理</asp:Label>
<hr style="Z-INDEX:102; LEFT:24px; POSITION:absolute; TOP:40px" width="100%" size="1">
<asp:Button ID="addclassname" style="Z-INDEX:103; LEFT:256px; POSITION:absolute; TOP:48px" Runat="server"
Text="添加分类"></asp:Button>
<hr style="Z-INDEX:104; LEFT:24px; POSITION:absolute; TOP:80px" width="100%" size="1">
<asp:TextBox ID="classname" style="Z-INDEX:105; LEFT:32px; POSITION:absolute; TOP:48px" width="216px"
Runat="server"></asp:TextBox>
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 106; LEFT: 24px; POSITION: absolute; TOP: 96px" runat="server"
AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn DataField="classid" ReadOnly="True" HeaderText="ID"></asp:BoundColumn>
<asp:BoundColumn DataField="classname" HeaderText="分类名"></asp:BoundColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" HeaderText="编辑" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
<asp:ButtonColumn Text="删除" HeaderText="删除" CommandName="Delete"></asp:ButtonColumn>
</Columns>
</asp:DataGrid>
<asp:Label ID="info" style="Z-INDEX:107; LEFT:368px; POSITION:absolute; TOP:48px" Runat="server"
Width="200PX" ForeColor="red"></asp:Label>
</form>
</body>
</HTML>



using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

namespace news.NewsAdmin
{
/// <summary>
/// AdminClassName 的摘要说明。
/// </summary>
public class AdminClassName : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Button addclassname;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.Label info;
protected System.Web.UI.WebControls.TextBox classname;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Classes.CheckAdmin.IsAdmin();
if(!Page.IsPostBack)
{
GetClassName();
}
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.addclassname.Click += new System.EventHandler(this.addclassname_Click);
this.DataGrid1.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_CancelCommand);
this.DataGrid1.EditCommand+= new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_EditCommand);
this.DataGrid1.UpdateCommand+= new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_UpdateCommand);
this.DataGrid1.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_DeleteCommand);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion




#region
private void addclassname_Click(object sender, System.EventArgs e)
{
this.info.Text="";
if(this.classname.Text.Trim().Length!=0)
{
string sql=string.Format("insert into [ClassName] (classname) values ('{0}')",this.classname.Text.Trim());
Classes.DataBase.ExcuteUpData(sql);
GetClassName();
}
else
{
this.info.Text="数据不能为空!";
}
}
#endregion

#region
private void GetClassName()
{
SqlConnection conn=null;
string sql=string.Empty;
DataSet ds=null;
try
{
sql=string.Format("select * from [classname] order by classid desc");
conn=Classes.DataBase.GetConn();
SqlDataAdapter da=new SqlDataAdapter(sql,conn);
ds=new DataSet();
da.Fill(ds,"s");
this.DataGrid1.DataSource=ds.Tables["s"];
this.DataGrid1.DataBind();
}
catch(Exception ex)
{
Response.Write(ex);
}
finally
{
conn.Close();
}
}
#endregion

#region
private void DataGrid1_EditCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
GetClassName();
}
#endregion

#region
private void DataGrid1_CancelCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex=-1;
GetClassName();
}
#endregion

#region
private void DataGrid1_UpdateCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
TextBox ClassNameText=(TextBox)e.Item.Cells[1].Controls[0];
string className=ClassNameText.Text;
int classID=Int32.Parse((e.Item.Cells[0].Text).ToString());
string sql=string.Format("update [classname] set classname='{0}' where classid={1}",className,classID);
Classes.DataBase.ExcuteUpData(sql);
this.DataGrid1.EditItemIndex=-1;
GetClassName();
}
#endregion

#region
private void DataGrid1_DeleteCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
int id=Convert.ToInt32(e.Item.Cells[0].Text);
string sql=string.Format("delete from [ClassName] where classid={0}",id);
Classes.DataBase.ExcuteUpData(sql);
this.DataGrid1.EditItemIndex=-1;
GetClassName();
}
#endregion



}
}
gui0605 2008-05-17
  • 打赏
  • 举报
回复
是否做了错误处理?如果有错误处理,比如写了错误日志,而没有转向出错页面,也没放开错误信息到客户端,页面就会是空白
阿非 2008-05-17
  • 打赏
  • 举报
回复
我晕~ 又猜谜
Haoze 2008-05-17
  • 打赏
  • 举报
回复
代码哪?
懒牛科技 2008-05-17
  • 打赏
  • 举报
回复
断点跟踪下看看!
国际学术期刊Science/AAAS和英特尔在全球首次联袂推出第一季《架构师成长计划》以来,吸引了无数架构师踊跃参与,获得业内广泛赞誉。为持续助力架构师把握数智机遇,构建未来,第二季《架构师成长计划》全新升级,强势归来!业内顶尖架构师大咖齐聚,为架构师群体量身打造系统成长课程,带来涵盖云游戏、云原生、联邦学习、生信大数据、算力网络、云网融合等多个热门话题的前沿技术及案例实践。第一期:超视频时代 音视频架构建设与演进复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=298&tc=yxq0921l2d&frm=csdn_2第二期:转化医学研究背景下的高性能计算平台复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=311&tc=pzw21rx59o&frm=csdn_2第三期:联邦学习的研究与应用实践复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=315&tc=0e8trfvt8i&frm=csdn_2第四期:用架构思维为云原生做减法复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=316&tc=i2kgf55ggn&frm=csdn_2第五期:网络智能化技术与演进复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=322&tc=ckhvmonqvb&frm=CSDN_2第六期:异构计算 数据中心“芯”变革复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=325&tc=mzppx1h6ri&frm=csdn_2第七期:筑算力,话东西复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=327&tc=gwb7n8x79n&frm=csdn_2第八期:AI驱动的生命科学创新范式之变复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=328&tc=zircyqwy9u&frm=csdn_2第九期:软硬一体实现数据库性能优化复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=348&tc=4a46kfrb0o&frm=csdn_2第十期:AI规模化应用时代的深度学习平台构建复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=349&tc=fm9a1mrumb&frm=csdn_2

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧