首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

基于Flowportal.Net写自己的应用时使用SqlDataReader遇到的一个问题

在使用Flowportal.Net BPM的时候,因为一个特殊的步骤需要自动根据ERP中的订单状态自动审批,在设计流程的时候,把这个步骤设定为2个处理人的共享任务。其中一个是专门设定的一个系统账号。然后,我创建了一个Winform的程序,自动执行以下的代码:先从BPM数据库中读取出来未处理的当前流程、当前步骤的清单,接着循环判断而去使用单独创建的用户登录到BPM取得共享任务并审批通过,当然了如果判断ERP系统未处理的话,就把只把当前任务取下来作为系统账号的个人任务。 程序的逻辑很清楚了,但是忽略了一个问题,在从BPM数据库读取数据的时候,偷懒是用了SqlDataReader,造成在循环内的BPM更新一直超时。后改为Dataset之后,问题解决。原因是SqlDataReader是读取完毕所有的查询结果后才断开数据库连接,所以在循环内部就会出现已经存在一个数据库连接,造成新建连接冲突。改为Dataset之后,就可以把结果放入Dataset(服务器的内存里),然后关闭对数据库的连接了,这时候那个逐行的循环更新就不会有问题了。

03

左右互搏术?SQL注入攻击自己一年前写的MD5加密程序

上软件工程这门课的时候,王老师说写代码的时候要严谨,顺带地提到了SQL注入并进行了简单的演示。那么什么是SQL注入呢?SQL注入是一种注入攻击,由于应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在应用程序中事先定义好的查询语句的结尾添加恶意的SQL语句,从而在管理员不知情的情况下,攻击者能够完全控制应用程序后面的数据库服务器实行非法操作。比如:攻击者可以使用SQL注入漏洞绕过应用程序安全措施;可以绕过网页或Web应用程序的身份验证和授权,并检索整个SQL数据库的内容;可以使用SQL注入来增删改查数据库中的数据记录,还可以未经授权非法访问用户的敏感数据:客户信息,个人数据,商业机密,知识产权等。

01
领券