求教asp.net几个项目中很菜的问题 问题一:在asp.net 中如何防址在ie地址栏中直接输入访问程序主页面的地址,从而绕开登陆界面,我用SEssion,发现它很容易丢失,大家有好的方法吗??问题二::在asp.net 如果程序发生异常,如何跑转到友好的错误信息页面,如何显示错误信息??请高手给与指点,在这给分了,谢谢大家 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 防止绕开登陆 session 是比较主流的用法, 你可以尝试着从怎么不让session丢失入手,问题2 一般在有异常的地方加一个try catch 你可以再catch后面吧异常显示出来,随便用弹出框呀 还是跳转一个错误页面,还有session丢失比较麻烦,我现在又个项目也是这个问题,这个问题是好多东西引起的,苦呀! 如果对安全要求不严格,可以用cookie防止用户绕开登陆界面。详细说明请看http://blog.163.com/kxm371/blog/static/3632456620096210156754/如果程序发生异常,则在Global.asax里面捕捉错误:例子: protected void Application_Error( object sender, EventArgs e ) { Exception[] errors = Context.AllErrors; Response.Clear(); Response.Write( string.Format( "{0} error occors.<br />", errors.Length ) ); for ( int i = 0; i < errors.Length; i ++ ) { //code here for each exception Response.Write( string.Format( "Exception[{0}]: {1}<br />", i, errors[ i ].Message ) ); } Context.ClearError(); Response.End(); } 第一个问题:关于安全方面最保险的是使用asp.net的MemberPrider。另外session和cookie都是有效的方法,为了安全建议不要单纯的使用cookie。session容易丢失,可以使用定时回调的方式来延长。第二个问题:指定错误页面,在web.config中指定,也可以再IIS的asp.net选项中设置,很容易的,选在自定义错误,输入页面地址。 1、验证当前Request是否已经认证(IsAuthenticated )。2、web.config中配置如下:<customErrors mode="RemoteOnly" defaultRedirect="customerror.htm"> <error statusCode="404" redirect="customerror404.htm"/></customErrors> 一般是不会丢失的,如果你每次都用~/admin/index.aspx我以前看过如果你用相对路径比如../admin/index.aspxsession会出现丢失情况 1:用asp.net中作用基于窗体的验证,它是利用cookie的2:在web.config里面设置一下就可以了,ls的 第一个问题还是用SESSION吧。第二个问题,这个好,直接在web.config中设置异常的跳转页面,在程序中使用try-catch,正确使用对你学好编程是很有帮助的 通过session,cookie记录, <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20" />所有页面继承BasePage或用httphandle 判断<customErrors mode="RemoteOnly" defaultRedirect="Error.aspx"><!-- <error statusCode="403" redirect="NoAccess.htm" /> <error statusCode="404" redirect="FileNotFound.htm" /> --></customErrors>转页面或在Application_Error捕捉错误protected void Application_Error(Object sender, EventArgs e) { Exception objErr = Server.GetLastError().GetBaseException(); string error = "发生异常页: " + Request.Url.ToString() + "<br>"; error += "异常信息: " + objErr.Message + "<br>"; Server.ClearError(); Application["error"] = error; Response.Redirect("~/ErrorPage/MyErrorPage.aspx"); } 或用数据库保存用户登录,通过数据库判断或用Forms 验证方式FormsAuthentication 问题一:在asp.net 中如何防址在ie地址栏中直接输入访问程序主页面的地址,从而绕开登陆界面,我用SEssion,发现它很容易丢失,大家有好的方法吗?? 厉害一点就是Form验证,不过这个呢,是微软定制好的,当然自己也可以修改问题二::在asp.net 如果程序发生异常,如何跑转到友好的错误信息页面,如何显示错误信息?? 这个呢自己用程序代码实现跳转,也可以在web.config中设置一下customErrors,具体如何的配置,网上有资料,楼主可以看一下 第一个问题:session和cookie都是有效的方法第二个问题:自己做几个友好的错误页面,在webconfig里重定向一下就哦了<customErrors mode="RemoteOnly" defaultRedirect="customerror.htm"> <error statusCode="404" redirect="customerror404.htm"/> </customErrors> 用户和角色管理, ASP.NET工具 我也曾经为了Session 失效而烦劳,解决办法11楼可行 图片缩放处理固定长宽 刷新页面后不想重新加载控件 C#程序,高分啊!要求:我有一组数字号码分为A.B.C.D.E五组,每组有24个数字号码或字母,现在要 大家快来帮帮我啊(干急求助)jmail与smpt 一个很基本的问题 ,分数可是100分哦 ,问题解决马上散分。。。。 gridview中如何控制行之间的距离 .net 中怎么把文本转成SQL binary类型 急求树型控件的样式 关于A派论坛不能回复的问题?? 调用百度短地址API接口为什么会截断长地址中&后面的参数? 用HttpWebRequest去访问一个页面.怎么访问呢? 弹出新的窗口 _blank
详细说明请看http://blog.163.com/kxm371/blog/static/3632456620096210156754/如果程序发生异常,则在Global.asax里面捕捉错误:
例子: protected void Application_Error( object sender, EventArgs e )
{ Exception[] errors = Context.AllErrors;
Response.Clear();
Response.Write( string.Format( "{0} error occors.<br />", errors.Length ) );
for ( int i = 0; i < errors.Length; i ++ )
{
//code here for each exception
Response.Write( string.Format( "Exception[{0}]: {1}<br />", i, errors[ i ].Message ) );
}
Context.ClearError();
Response.End();
}
2、web.config中配置如下:
<customErrors mode="RemoteOnly"
defaultRedirect="customerror.htm">
<error statusCode="404" redirect="customerror404.htm"/>
</customErrors>
一般是不会丢失的,如果你每次都用~/admin/index.aspx
我以前看过如果你用相对路径比如../admin/index.aspx
session会出现丢失情况
2:在web.config里面设置一下就可以了,ls的
第二个问题,这个好,直接在web.config中设置异常的跳转页面,在程序中使用try-catch,正确使用对你学好编程是很有帮助的
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20" />
所有页面继承BasePage或用httphandle 判断
<customErrors mode="RemoteOnly" defaultRedirect="Error.aspx">
<!--
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
-->
</customErrors>转页面或在Application_Error捕捉错误
protected void Application_Error(Object sender, EventArgs e)
{
Exception objErr = Server.GetLastError().GetBaseException();
string error = "发生异常页: " + Request.Url.ToString() + "<br>";
error += "异常信息: " + objErr.Message + "<br>";
Server.ClearError();
Application["error"] = error;
Response.Redirect("~/ErrorPage/MyErrorPage.aspx");
}
或用Forms 验证方式FormsAuthentication
厉害一点就是Form验证,不过这个呢,是微软定制好的,当然自己也可以修改问题二::在asp.net 如果程序发生异常,如何跑转到友好的错误信息页面,如何显示错误信息??
这个呢自己用程序代码实现跳转,也可以在web.config中设置一下customErrors,具体如何的配置,网上有资料,楼主可以看一下
defaultRedirect="customerror.htm">
<error statusCode="404" redirect="customerror404.htm"/>
</customErrors>