安全地使用HttpContext.Current
2015-07-08 16:28
465 查看
<>
方法其实也简单,就是要判断HttpContext.Current是否返回null,例如下面的示例代码:
就是一个判断,解决了所有问题,所以请忘记下面这类不安全的写法吧:
下面的方法才是安全的:
安全地使用HttpContext.Current
有时我们会写些通用类库给ASP.NET或者WindowsService程序来使用,例如异常记录的工具方法。 对于ASP.NET程序来说,我们肯定希望在异常发生时,能记录URL,表单值,Cookie等等数据,便于事后分析。 然而对于WindowsService这类程序来说,您肯定没想过要记录Cookie吧? 那么如何实现一个通用的功能呢?方法其实也简单,就是要判断HttpContext.Current是否返回null,例如下面的示例代码:
public static void LogException(Exception ex) { StringBuilder sb = new StringBuilder(); sb.Append("异常发生时间:").AppendLine(DateTime.Now.ToString()); sb.AppendLine(ex.ToString()); // 如果是ASP.NET程序,还需要记录URL,FORM, COOKIE之类的数据 HttpContext context = HttpContext.Current; if( context != null ) { // 能运行到这里,就肯定是在处理ASP.NET请求,我们可以放心地访问Request的所有数据 sb.AppendLine("Url:" + context.Request.RawUrl); // 还有记录什么数据,您自己来实现吧。 } System.IO.File.AppendAllText("日志文件路径", sb.ToString()); }
就是一个判断,解决了所有问题,所以请忘记下面这类不安全的写法吧:
HttpContext.Current.Request.RawUrl; HttpContext.Current.Server.MapPath("xxxxxx");
下面的方法才是安全的:
HttpContext context = HttpContext.Current; if( context != null ) { // 在这里访问与请求有关的东西。 }
相关文章推荐
- 加载网络图片
- 黑马程序员——java基础---网络编程
- openssl nodejs https+客户端证书+usbkey
- 好用的http工具
- CocoaPods安装和使用教程:出处:http://code4app.com/article/cocoapods-install-usage
- 2015湖南省选集训DAY5——work(BZOJ4177)
- HttpClient抓取网页内容简单介绍
- 网络运营为何而生?
- 黑马程序员—Java网络编程
- HttpClient 源码解读
- xutils-httpUtils 下载显示文字进度百分比(toast)
- HTTPS 是如何保证安全的?[转帖]
- IOCP完整例子
- CentOS 6.5下编译安装httpd+mysql+php+phpMyAdmin
- nginx源码学习——Http连接对应的事件驱动模块
- (七十二)设置网络代理,升级SDK
- 神经网络(前向传播和反向传导)
- TCP Retransmission
- [火狐REST] 火狐REST 模拟 HTTP get, post请求
- https server