简单
简单世界

2011年11月9日

主要是想测试一下,如果重新进行编辑,发布时间会不会发生变化,或者会不会补充出现重新编辑的时间。

 

===这里是重新编辑的内容,再看看时间 

 

posted @ 2011-11-09 15:16 jiandan 阅读(6) 评论(0) 编辑

2007年5月21日

今天被一个问题缠了一天.aspx页面引用外部脚本文件出错了,原来都是好好的.调了半天才发现跟脚本文件里的中文有关.试了web.config,meta,page等等各种途径后,终于找到了解决的方法.

开发环境:vs2003
症状:aspx页面引用的js文件中如果包括中文,就会引起脚本错误.提示是'未结束的字符串'.或输出乱码.
原因:aspx页面的默认编码是utf-8,而js文件的默认编码是gb2312,两者之间不一致引起了中文乱码.
解决方法:在vs中打开js文件,选择'高级保存选项',将js文件保存为'unicode(utf-8-未签名)'.

posted @ 2007-05-21 22:22 jiandan 阅读(1643) 评论(2) 编辑

2007年4月17日

      最近在做源代码加密保护的任务,第一次接触这方面的东西,主要使用的是Dotfucator和Reflector.有一些心得,和大家交流一下.
      在.net之前,源代码被直接编译为机器码.而在.net环境下,源代码被编译为中间语言(IL),在实际运行的时候,才转换为二进制本地码执行.而中间语言(IL)是很容易被反编译的..NET自己就带着一个查看IL的工具ILDASM. 
      VS2005自带一个保护源代码的工具DotFuscator,是社区版的,只有基本的混淆命名的功能.专业版功能很多,可以混淆流程,加密字符串,加入水印,程序签名等,可惜太贵~..~(好像一个授权要30k),只好找破解版的来学习一下.
      社区版的DotFuscator使用很简单,从VS2005集成开发环境-->工具-->DotFuscator Community Edition,打开后不用注册可以直接使用.在输入选项卡中导入一个dll或者exe文件,在生成选项卡中输入输出目录,直接点击生成即可.想复杂也不成,因为其他的功能基本都是灰的,要专业版才行.
      专业版的可选项多一些,除了可以对名称进行重命名,还可以混淆流,打乱程序原有的结构,但保持逻辑不变.混淆后的代码用Reflector查看,会发现都是一堆goto语句,很难理解.还可以加密字符串,一些敏感信息,例如数据库连接字符串等,如果不加密,很容易被找到并非法利用.也可以在代码中加入水印,如果公司信息,版权标志等.加入水印不会影响程序原有代码的执行.DotFuscator提供一个工具用来查看程序集中的水印premark.exe,可以在DotFuscator的安装目录下找到.也可以对水印进行加密.DotFuscator还可以对程序集进行强名称签名,防止程序集被非法篡改.

      在使用的过程中,有几个疑惑一直没有解决,欢迎大家交流.
      1.如果dll中包含资源文件,那么进行重命名混淆后,用反射的方式无法访问资源,必须在混淆的时候,将资源文件排除在外.
      2.在程序集中加入水印,用premark无法查看该水印.不知道是不是因为破解版的原因?
posted @ 2007-04-17 20:52 jiandan 阅读(8586) 评论(4) 编辑

2007年2月14日

  晚上的火车,回家回家。盼着公司能把一月的工资给发了,最好把二月的也发了,最好还有点年终奖项目奖啥的,哎,不过也不敢奢望了。年后真的该考虑一下新的机会了。在这里干得比牛多,晚上加班比X服务人员都多,工资比民工都少,涨工资的速度比蜗牛都慢。没法活了。


祝园子里的朋友们新春愉快!工作顺顺利利的,工资多多的,身体棒棒的。
posted @ 2007-02-14 15:51 jiandan 阅读(169) 评论(1) 编辑

2007年2月10日

link   生成固定格式的word文档,如分析报告之类,可以先建立好固定格式的文档模板,把需要动态插入数据或者其他东西的位置标记为书签,web页面的程序再用数据替换书签.
 protected void Button_Click(object sender, EventArgs e)
        
{
            Object Nothing 
= System.Reflection.Missing.Value;

            
//取得Word文件保存路径
            object filename = @SaveAs.Text;

            
object dotName = @"c:\test.dot";

            
//创建一个名为WordApp的组件对象
            Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();

            
//创建一个名为WordDoc的文档对象
            Microsoft.Office.Interop.Word.Document WordDoc = WordApp.Documents.Open(ref dotName, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
            
//Microsoft.Office.Interop.Word.Document WordDoc = WordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);


            Response.Write(
"##" + WordDoc.Bookmarks.Count + "##");

            
foreach (Bookmark bm in WordDoc.Bookmarks)
            
{
                
if (bm.Name == "Value")
                
{
                    
                    bm.Select();
                    bm.Range.Text 
= TextBox2.Text;
                   
                }

                
else if (bm.Name == "ItemName")
                
{
                    bm.Select();
                    bm.Range.Text 
= TextBox1.Text;
                }

                
else if(bm.Name=="FcstValue")
                
{
                    bm.Select();
                    bm.Range.Text 
= TextBox3.Text;
                }

                
else if (bm.Name == "ModelName")
                
{
                    bm.Select();
                    bm.Range.Text 
= TextBox4.Text;
                }

                
else if (bm.Name == "IncreaseRate")
                

                    bm.Select();
                    bm.Range.Text 
= TextBox5.Text;
                    
                }

            }




            
//将WordDoc文档对象的内容保存为DOC文档
            WordDoc.SaveAs(ref filename, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
            
//关闭WordDoc文档对象
            WordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
            
//关闭WordApp组件对象
            WordApp.Quit(ref Nothing, ref Nothing, ref Nothing);

            
//返回结果
            result.Text = "文档路径:<a href='" + SaveAs.Text + "'>" + SaveAs.Text + "</a>(点击链接查看)<br/>生成结果:成功!";
        }
posted @ 2007-02-10 22:17 jiandan 阅读(727) 评论(0) 编辑

2007年2月6日

摘要: 2003中的TreeView,选中某个节点的checkbox框后,就会自动触发服务器端的事件TreeNodeCheckChanged,而2005中,改变checkbox框的选择状态,只是纯粹的客户端事件,不会触发服务器端事件.只有当页面回发,才会执行相应的TreeNodeCheckChanged事件.而实际应用中,可能需要改变某个选择框后,回发页面.在网上搜索了一下,终于找到了解决方法.当点击Tr...阅读全文
posted @ 2007-02-06 22:25 jiandan 阅读(852) 评论(3) 编辑
 
摘要: IIS服务器已经设置为允许匿名访问,但浏览器客户端仍然要求输入用户名密码. 在服务器上用localhost访问则不需要,用ip访问需要.解决方法:把IIS匿名访问的用户改为系统管理员就可以了. 其他解决方法: 上面的方法只是临时之急,安全性很差.引起此错误的原因可能是iis用户权限配置丢失,也可能是用户被禁用.或者是对asp.net临时文件夹权限不够等等.将这些可能的错误都排除后,应当就可以解决问...阅读全文
posted @ 2007-02-06 22:10 jiandan 阅读(5520) 评论(9) 编辑

2007年2月5日

摘要: 今天在写程序时,发现一个奇怪的问题.某个网页编译通不过,提示上下文不存在某个gridview,而这个gridview在页面上已经声明了,在IDE的cs文件中也可以正常访问.却死活通不过编译.如果忽略该错误,继续编译,也能走下去. 但是在发布的时候却没着了,编译不通过就无法发布网站.后来偶然的发现了问题所在.我把该页面复制了一个,文件名默认为"复件xx.aspx"和"复件xx.aspx.cs",而在...阅读全文
posted @ 2007-02-05 22:35 jiandan 阅读(99) 评论(0) 编辑
 
摘要: 从来没有系统的学过html语言,对input标签的name属性和id属性一直没什么感觉.用.net习惯了,所以input标签一直用id属性,从来没有用过name.今天在写脚本的时候,四个不同的类型为radio的input,id赋了不同的值,通过点击radio来控制其他页面控件的可见性,却发现引起了混乱.查看html代码,发现四个radio的name属性都是"",赋以不同的name属性后,就一切正常...阅读全文
posted @ 2007-02-05 22:26 jiandan 阅读(736) 评论(1) 编辑
 
摘要: 最近工作上的心情一直不顺,总想写点什么,为了日后的打算,也觉得该积累点东西了.前段时间重装系统,单机版的日志不小心没有备份上,终于意识到了网络的重要性,决定从今天开始在网络上写日志,记录工作中的知识积累,还有心情的记录.希望能在这里交到多多的朋友^_^阅读全文
posted @ 2007-02-05 22:20 jiandan 阅读(65) 评论(2) 编辑