最近在开发E8.ServiceDesk系统时,如果页面中有一个富文本框控件时,系统报错,错误如下图:
Server Error in '/YourApplicationPath' Application
A potentially dangerous Request.Form value was detected from the client
(txtName="<b>").
Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. You can disable request validation by setting validateRequest=false in the Page directive or in the configuration section. However, it is strongly recommended that your application explicitly check all inputs in this case.
Exception Details: System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (txtName="<b>").
.... |
根据提示,"请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击"。通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。
解决方法有三个:
方法1. 在.aspx页面中添加:
<%@ Page validateRequest="false" %>
方法2. 修改Web.Config文件:
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
方法3.
在页面的Code-behind页面中加入这么一段代码:
protected void Page_Error(object sender, EventArgs e)

...{
Exception ex = Server.GetLastError();
if (ex is HttpRequestValidationException)

...{
Response.Write("请您输入合法字符串。");
Server.ClearError(); // 如果不ClearError()这个异常会继续传到Application_Error()。
}
}
这样这个程序就可以截获 HttpRequestValidationException 异常,而且可以按照程序员的意愿返回一个合理的报错信息
问题是这样可以解决了,但网页的安全性解决了吗?那一种解决方法好一些呢?我们可以一起
ASP.Net 1.1后引入了对提交表单自动检查是否存在XSS(跨站脚本攻击)的能力。当用户试图用<xxxx>之类的输入影响页面返回结果的时候,ASP.Net的引擎会引发一个 HttpRequestValidationExceptioin。默认情况下会返回上面那个错误的页面:
这是ASP.Net提供的一个很重要的安全特性。因为很多程序员对安全没有概念,甚至都不知道XSS这种攻击的存在,知道主动去防护的就更少了。ASP.Net在这一点上做到默认安全。这样让对安全不是很了解的程序员依旧可以写出有一定安全防护能力的网站。
为什么很多程序员想要禁止 validateRequest 呢?有一部分是真的需要用户输入"<>"之类的字符。这就不必说了。还有一部分其实并不是用户允许输入那些容易引起XSS的字符,而是讨厌这种报错的形式,毕竟一大段英文加上一个ASP.Net典型异常错误信息,显得这个站点出错了,而不是用户输入了非法的字符,可是自己又不知道怎么不让它报错,自己来处理报错。
而对于那些通过 明确禁止了这个特性的程序员,自己一定要明白自己在做什么,而且一定要自己手动的检查必须过滤的字符串,否则你的站点很容易引发跨站脚本攻击。
关于存在Rich Text Editor的页面应该如何处理?
如果页面有富文本编辑器的控件的,那么必然会导致有<xxx>类的HTML标签提交回来。在这种情况下,我们不得不将validateRequest="false"。那么安全性怎么处理?如何在这种情况下最大限度的预防跨站脚本攻击呢?
根据微软的建议,我们应该采取安全上称为“默认禁止,显式允许”的策略。
首先,我们将输入字符串用 HttpUtility.HtmlEncode()来编码,将其中的HTML标签彻底禁止。
然后,我们再对我们所感兴趣的、并且是安全标签,通过Replace()进行替换。比如,我们希望有"<b>"标签,那么我们就将"<b>"显式的替换回"<b>"。
示例代码如下:
void submitBtn_Click(object sender, EventArgs e)

...{
// 将输入字符串编码,这样所有的HTML标签都失效了。
StringBuilder sb = new StringBuilder(
HttpUtility.HtmlEncode(htmlInputTxt.Text));
// 然后我们选择性的允许<b> 和 <i>
sb.Replace("<b>", "<b>");
sb.Replace("</b>", "");
sb.Replace("<i>", "<i>");
sb.Replace("</i>", "");
Response.Write(sb.ToString());
}
这样我们即允许了部分HTML标签,又禁止了危险的标签。
根据微软提供的建议,我们要慎重允许下列HTML标签,因为这些HTML标签都是有可能导致跨站脚本攻击的。
- <applet>
- <body>
- <embed>
- <frame>
- <script>
- <frameset>
- <html>
- <iframe>
- <img>
- <style>
- <layer>
- <link>
- <ilayer>
- <meta>
- <object>
可能这里最让人不能理解的是<img>。但是,看过下列代码后,就应该明白其危险性了。
<img src="javascript:alert('hello');">
<img src="java script:alert('hello');">
<img src="java script:alert('hello');">
通过<img>标签是有可能导致Javascript执行的,这样攻击者就可以做他想伪装的任何事情。
关于<style>也是一样:

<style TYPE="text/javascript">...
alert('hello');
</style>
E8.Net工作流架构大量节约用户的开发成本为企业应用开发提供起点,提升软件生产力,欢迎访问:http://www.feifanit.com.cn/productFlow.htm
posted @
2008-10-07 10:48 朱明春 阅读(263) |
评论 (1) |
编辑
[b]IIS6.0服务器架站无法访问解决方案总结[/b]
很多朋友在用IIS6架网站的时候遇到不少问题,而这些问题有些在过去的IIS5里面就遇到过,有些是新出来的,俺忙活了一下午,做了很多次试验,结合以前的排错经验,做出了这个总结,希望能给大家帮上忙。
如果你的服务器是2003的,它默认只支持.net,不支持asp所以须进行以下操作:
打开iis6.0里面的本地[url=http://www.mylove520.com/]计算机[/url]->web服务扩展
把active server pages 允许就行了。
[b] 问题1:未启用父路径[/b]
症状举例:
Server.MapPath() 错误 'ASP 0175 : 80004005'
不允许的 Path 字符
/0709/dqyllhsub/news/OpenDatabase.asp,行 4
在 MapPath 的 Path 参数中不允许字符 '..'。
原因分析:
许多Web页面里要用到诸如../格式的语句(即回到上一层的页面,也就是父路径),而IIS6.0出于[url=http://www.mylove520.com/]安全[/url]考虑,这一选项默认是关闭的。
解决方法:
在IIS中 属性->主目录->配置->选项中。把”启用父路径“前面打上勾。确认刷新。
[b] 问题2:ASP的Web扩展配置不当(同样适用于ASP.NET、CGI)[/b]
症状举例:
HTTP 错误 404 - 文件或目录未找到。
原因分析:
在IIS6.0中新增了web程序扩展这一选项,你可以在其中对ASP、ASP.NET、CGI、IDC等程序进行允许或禁止,默认情况下ASP等程序是禁止的。
解决方法:
在IIS中的Web服务扩展中选中Active Server Pages,点击“允许”。
问题3:身份认证配置不当[/b]
症状举例:
HTTP 错误 401.2 - 未经授权:访问由于服务器配置被拒绝。
原因分析:IIS 支持以下几种 Web 身份验证方法:
匿名身份验证
IIS 创建 IUSR_[url=http://www.mylove520.com/]计算机[/url]名称 帐户(其中 [url=http://www.mylove520.com/]计算机[/url]名称 是正在运行 IIS 的服务器的名称),用来在匿名用户请求 Web 内容时对他们进行身份验证。此帐户授予用户本地登录权限。你可以将匿名用户访问重置为使用任何有效的 [url=http://www.mylove520.com/]Windows[/url] 帐户。
基本身份验证
使用基本身份验证可限制对 NTFS 格式 Web 服务器上的文件的访问。使用基本身份验证,用户必须输入凭据,而且访问是基于用户 ID 的。用户 ID 和密码都以明文形式在[url=http://www.mylove520.com/]网络[/url]间进行发送。
[url=http://www.mylove520.com/]Windows[/url] 集成身份验证
[url=http://www.mylove520.com/]Windows[/url] 集成身份验证比基本身份验证[url=http://www.mylove520.com/]安全[/url],而且在用户具有 [url=http://www.mylove520.com/]Windows[/url] 域帐户的内部网环境中能很好地发挥作用。在集成的 [url=http://www.mylove520.com/]Windows[/url] 身份验证中,浏览器尝试使用当前用户在域登录过程中使用的凭据,如果尝试失败,就会提示该用户输入用户名和密码。如果你使用集成的 [url=http://www.mylove520.com/]Windows[/url] 身份验证,则用户的密码将不传送到服务器。如果该用户作为域用户登录到本地[url=http://www.mylove520.com/]计算机[/url],则他在访问此域中的[url=http://www.mylove520.com/]网络[/url][url=http://www.mylove520.com/]计算机[/url]时不必再次进行身份验证。
摘要身份验证
摘要身份验证克服了基本身份验证的许多缺点。在使用摘要身份验证时,密码不是以明文形式发送的。另外,你可以通过代理服务器使用摘要身份验证。摘要身份验证使用一种挑战/响应机制(集成 [url=http://www.mylove520.com/]Windows[/url] 身份验证使用的机制),其中的密码是以加密形式发送的。
.NET Passport 身份验证
Microsoft .NET Passport 是一项用户身份验证服务,它允许单一签入[url=http://www.mylove520.com/]安全[/url]性,可使用户在访问启用了 .NET Passport 的 Web 站点和服务时更加[url=http://www.mylove520.com/]安全[/url]。启用了 .NET Passport 的站点会依靠 .NET Passport 中央服务器来对用户进行身份验证。但是,该中心服务器不会授权或拒绝特定用户访问各个启用了 .NET Passport 的站点。
解决方法:
根据需要配置不同的身份认证(一般为匿名身份认证,这是大多数站点使用的认证方法)。认证选项在IIS的属性->[url=http://www.mylove520.com/]安全[/url]性->身份验证和访问控制下配置。
[b] 问题4:IP限制配置不当[/b]
症状举例:
HTTP 错误 403.6 - 禁止访问:客户端的 IP 地址被拒绝。
原因分析:
IIS提供了IP限制的机制,你可以通过配置来限制某些IP不能访问站点,或者限制仅仅只有某些IP可以访问站点,而如果客户端在被你阻止的IP范围内,或者不在你允许的范围内,则会出现错误提示。
解决方法:
进入IIS的属性->[url=http://www.mylove520.com/]安全[/url]性->IP地址和域名限制。如果要限制某些IP地址的访问,需要选择授权访问,点添加选择不允许的IP地址。反之则可以只允许某些IP地址的访问。
问题5:IUSR账号被禁用[/b]
症状举例:
HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。
原因分析:
由于用户匿名访问使用的账号是IUSR_机器名,因此如果此账号被禁用,将造成用户无法访问。
解决办法:
控制面板->管理工具->[url=http://www.mylove520.com/]计算机[/url]管理->本地用户和组,将IUSR_机器名账号启用。
[b] 问题6:NTFS权限设置不当[/b]
症状举例:
HTTP 错误 401.3 - 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。
原因分析:
Web客户端的用户隶属于user组,因此,如果该文件的NTFS权限不足(例如没有读权限),则会导致页面无法访问。
解决办法:
进入该文件夹的[url=http://www.mylove520.com/]安全[/url]选项卡,配置user的权限,至少要给读权限。关于NTFS权限设置这里不再馈述。
[b] 问题7:IWAM账号不同步[/b]
症状举例:
HTTP 500 - 内部服务器错误
原因分析:
IWAM账号是安装IIS时系统自动建立的一个内置账号。IWAM账号建立后被Active Directory、IIS metabase数据库和COM+应用程序三方共同使用,账号密码被三方分别保存,并由操作系统负责这三方保存的IWAM密码的同步工作。系统对IWAM账号的密码同步工作有时会失效,导致IWAM账号所用密码不统一。
解决办法:
如果存在AD,选择开始->程序->管理工具->Active Directory用户和[url=http://www.mylove520.com/]计算机[/url]。为IWAM账号设置密码。
运行c:\Inetpub\AdminScripts>adsutil SET w3svc/WAMUserPass +密码 同步IIS metabase数据库密码
运行cscript c:\inetpub\adminscripts\synciwam.vbs -v 同步IWAM账号在COM+应用程序中的密码
[b] 问题8:MIME设置问题导致某些类型文件无法下载(以ISO为例)[/b]
症状举例:
HTTP 错误 404 - 文件或目录未找到。
原因分析:
IIS6.0取消了对某些MIME类型的支持,例如ISO,致使客户端下载出错。
解决方法:
在IIS中 属性->HTTP头->MIME类型->新建。在随后的对话框中,扩展名填入.ISO,MIME类型是application。
另外,防火墙阻止,ODBC配置错误,Web服务器性能限制,线程限制等因素也是造成IIS服务器无法访问的可能原因,这里就不再一一馈述了。
E8.Net工作流架构大量节约用户的开发成本为企业应用开发提供起点,提升软件生产力,欢迎访问:http://www.feifanit.com.cn/productFlow.htm
posted @
2008-09-24 17:29 朱明春 阅读(250) |
评论 (0) |
编辑
摘要: 在E8.Net平台中已经包含了根据Sitemap生成outlook风格菜单的全部源代码. 不过还有一些客户提出另一种下拉菜单的样式需求. 于是在E8.Net 上扩展了一种新的菜单实现模式.如图例:此菜单跟之前提供的outlook菜单一样来自于sitemap设置由于菜单是放在FrameSet中的一个frame上,因此弹出的子菜单不能用DIV的方式来实现,而是采用window.createpopup(...
阅读全文
posted @
2008-08-30 10:22 朱明春 阅读(190) |
评论 (0) |
编辑
我们做WEB程序开发过程中,经常会为了Table中的cellSpacing,cellpadding等样式的设置发愁,经常没有办法可想了,就会直接在Table中设置cellSpacing,cellpadding了,这样以后要改页面风格时,或做多主题风格时,就会发现改起来是多么的痛苦了.奔着这个目标,经过不断的Google,终于把这个问题解决了,感谢Google,感谢热心的上传者,呵呵!现在把解决方法也写下来.
其实实现方式很简单,在css中加上Table{ jerry:expression(cellSpacing="1");},其它类似,这样就把问题解决了,我们的页面代码也清晰不少了.
E8.Net工作流架构大量节约用户的开发成本为企业应用开发提供起点,提升软件生产力,欢迎访问:http://www.feifanit.com.cn/productFlow.htm
posted @
2008-08-25 12:06 朱明春 阅读(368) |
评论 (8) |
编辑
在使用主题的时候出现 控件包含代码块(即 <% ... %>),因此无法修改控件集合错误,原来错误的原因是:
控件包含代码块(即 <% ... %>),因此无法修改控件集合。 将这些代码去掉,相应的功能在代码中实现即可。
<%=.....%>
造成这个错误的原因是:在<head runat="server"></head>里面,使用了类似这样的代码,
把Head中使用的<%=.....%>的脚本放到body中,就OK了.
E8.Net工作流架构大量节约用户的开发成本为企业应用开发提供起点,提升软件生产力,欢迎访问:http://www.feifanit.com.cn/productFlow.htm
posted @
2008-08-20 11:39 朱明春 阅读(570) |
评论 (1) |
编辑
1、copy below commands into a .bat file
2、double click it
3、have fun
==============================================================
rundll32.exe /s advpack.dll /DelNodeRunDLL32 C:\\WINNT\\System32\\dacui.dll
rundll32.exe /s advpack.dll /DelNodeRunDLL32 C:\\WINNT\\Catroot\\icatalog.mdb
regsvr32 /s setupwbv.dll
regsvr32 /s wininet.dll
regsvr32 /s comcat.dll
regsvr32 /s shdoc401.dll
regsvr32 /s shdoc401.dll /i
regsvr32 /s asctrls.ocx
regsvr32 /s oleaut32.dll
regsvr32 /s shdocvw.dll /I
regsvr32 /s shdocvw.dll
regsvr32 /s browseui.dll
regsvr32 /s browseui.dll /I
regsvr32 /s msrating.dll
regsvr32 /s mlang.dll
regsvr32 /s hlink.dll
regsvr32 /s mshtml.dll
regsvr32 /s mshtmled.dll
regsvr32 /s urlmon.dll
regsvr32 /s plugin.ocx
regsvr32 /s sendmail.dll
regsvr32 /s comctl32.dll /i
regsvr32 /s inetcpl.cpl /i
regsvr32 /s mshtml.dll /i
regsvr32 /s scrobj.dll
regsvr32 /s mmefxe.ocx
regsvr32 /s proctexe.ocx mshta.exe /register
regsvr32 /s corpol.dll
regsvr32 /s jscript.dll
regsvr32 /s msxml.dll
regsvr32 /s imgutil.dll
regsvr32 /s thumbvw.dll
regsvr32 /s cryptext.dll
regsvr32 /s rsabase.dll
regsvr32 /s triedit.dll
regsvr32 /s dhtmled.ocx
regsvr32 /s inseng.dll
regsvr32 /s iesetup.dll /i
regsvr32 /s hmmapi.dll
regsvr32 /s cryptdlg.dll
regsvr32 /s actxprxy.dll
regsvr32 /s dispex.dll
regsvr32 /s occache.dll
regsvr32 /s occache.dll /i
regsvr32 /s iepeers.dll
regsvr32 /s wininet.dll /i
regsvr32 /s urlmon.dll /i
regsvr32 /s digest.dll /i
regsvr32 /s cdfview.dll
regsvr32 /s webcheck.dll
regsvr32 /s mobsync.dll
regsvr32 /s pngfilt.dll
regsvr32 /s licmgr10.dll
regsvr32 /s icmfilter.dll
regsvr32 /s hhctrl.ocx
regsvr32 /s inetcfg.dll
regsvr32 /s trialoc.dll
regsvr32 /s tdc.ocx
regsvr32 /s MSR2C.DLL
regsvr32 /s msident.dll
regsvr32 /s msieftp.dll
regsvr32 /s xmsconf.ocx
regsvr32 /s ils.dll
regsvr32 /s msoeacct.dll
regsvr32 /s wab32.dll
regsvr32 /s wabimp.dll
regsvr32 /s wabfind.dll
regsvr32 /s oemiglib.dll
regsvr32 /s directdb.dll
regsvr32 /s inetcomm.dll
regsvr32 /s msoe.dll
regsvr32 /s oeimport.dll
regsvr32 /s msdxm.ocx
regsvr32 /s dxmasf.dll
regsvr32 /s laprxy.dll
regsvr32 /s l3codecx.ax
regsvr32 /s acelpdec.ax
regsvr32 /s mpg4ds32.ax
regsvr32 /s voxmsdec.ax
regsvr32 /s danim.dll
regsvr32 /s Daxctle.ocx
regsvr32 /s lmrt.dll
regsvr32 /s datime.dll
regsvr32 /s dxtrans.dll
regsvr32 /s dxtmsft.dll
regsvr32 /s vgx.dll
regsvr32 /s WEBPOST.DLL
regsvr32 /s WPWIZDLL.DLL
regsvr32 /s POSTWPP.DLL
regsvr32 /s CRSWPP.DLL
regsvr32 /s FTPWPP.DLL
regsvr32 /s FPWPP.DLL
regsvr32 /s FLUPL.OCX
regsvr32 /s wshom.ocx
regsvr32 /s wshext.dll
regsvr32 /s vbscript.dll
regsvr32 /s scrrun.dll mstinit.exe /setup
regsvr32 /s msnsspc.dll /SspcCreateSspiReg
regsvr32 /s msapsspc.dll /SspcCreateSspiReg
E8.Net工作流架构大量节约用户的开发成本为企业应用开发提供起点,提升软件生产力,欢迎访问:http://www.feifanit.com.cn/productFlow.htm
posted @
2008-08-18 15:59 朱明春 阅读(96) |
评论 (0) |
编辑
摘要: 通过Cache机制实现通用的配置管理模块 .Net Web应用程序提供了很强大的 Web.Config功能,我们很多的系统可能已经习惯在Web.Config中进行配置,可是使用Web.Config进行一些配置,会有一些不太顺畅的特性,比如:修改Web.Config 后,Web应用程序会出现错误页面并且需要重新登录,Web.Config配置过程不是很方便,即使通过安装包进行Web.Config的设置...
阅读全文
posted @
2008-08-07 14:31 朱明春 阅读(444) |
评论 (3) |
编辑
最近在做一个导入Excel数据到数据库表中对应字段的功能,一开始做的时候,也没有什么困难,做的还比较顺利,但是在接下去测试过程中,却遇到了一些很棘手的问题,疯狂的试验,在网上不停的搜索,有不少人也有相同的问题,但却没有一个把问题解决清楚了,即然自己解决了,就把解决问题的过程和原因记下来,与大家一同分享.
导入EXCEL的思路来自己客户的需求,客户需要从EXCEL中导入一些基础资料,来初始化系统中一些基础数据,而这些基础数据表中每个表都与几个不同的表相关联,即要保证数据的有效性,又要把相关性也导入,还真是把我们难倒了.如果不用程序导入,基础资料怎么导入呢,反过来一想,那就用SQL的方式导入方式吧.
首先不管EXCEL表中的数据是什么样的,创建一个临时用的物理表,把EXCEL中的数据导入;然后用SQL语句对这个临时表和相关的表进行SQL语句开发,这样确实简单灵活了,以后客户再有什么其它变态需求时,大不了给他写一个存储过程,要多复杂就可以多复杂,一切问题解决,真爽,呵呵.
做完后测试发现几个棘手的问题.
问题:数据驱动问题,Excel中有一些列是数值,虽然把这个列改为文本存储方式或其它方式,用这种方式读取就是读取不到这些列的数据(
string strCon = @" Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path + ";Extended Properties=Excel 8.0;";),真是奇怪了.试验过修改EXCEL存储方式,格式,然后修改连接串,最后发现原因是数据驱动有问题,改为string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + Path + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'"; 就正确了,这里需要大家注意的一个问题'Excel 8.0;HDR=NO;IMEX=1',与Excel 8.0;HDR=NO;IMEX=1的区别,没有'号会一直出现
找不到可安装的 ISAM错误!
参数说明:
Microsoft Jet 提供程序用于连接到 Excel 工作簿。在以下连接字符串中,Extended Properties 关键
字设置 Excel 特定的属性。“HDR=Yes;”指示第一行中包含列名,而不是数据,“IMEX=1;”通知驱动程
序始终将“互混”数据列作为文本读取。注意
http://msdn2.microsoft.com/zh-cn/library/ms254978.aspx
默认情况下,系统认为 Excel 数据源的第一行包含可用作字段名的列标题。如果不是这种情况,则必须
将该设置关闭,否则,第一行数据将会“消失”,而被用作字段名称。这可通过向连接字符串的扩展属性
添加可选的 HDR= 设置来完成。默认情况下(无需指定)是 HDR=Yes。如果没有列标题,则需要指定
HDR=No;提供程序将字段命名为 F1、F2 等等。因为扩展属性字符串现在包含了多个值,所以必须用引号
单独包起来,如下例所示(为便于看清楚,添加了额外的空格)。
如第1个中hdr=no的话,where时就会报错
ConnStr ="Driver={Microsoft Excel Driver (*.xls)};Dbq=C:\Inetpub\wwwroot\test.xls;
Extended Properties='Excel 8.0;HDR=No;IMEX=1'"
Extended Properties参数属性这样写 Excel 5.0;HDR=YES;IMEX=1
IMEX=1就是指混合型转换为文本
select * from
OPENROWSET(’MICROSOFT.JET.OLEDB.4.0′
,’Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\book1.xls’,[sheet1$])
1)hdr=yes时可以把xls的第1行作为字段看待,如第1个中hdr=no的话,where时就会报错
2)[]和美圆$必须要,否则M$可不认这个账
希望对做导入EXCEL功能的人有所帮助!
E8.Net工作流平台 提升企业战略执行力
ITIL与ITSM QQ4号群:1260249
.NET企业应用开发与工作流QQ 4号群:41553575
http://www.feifanit.com.cn/
posted @
2008-07-17 10:16 朱明春 阅读(374) |
评论 (2) |
编辑
水,以一种流动形态存在,是物种起源的摇篮,却又是如此简单。是的,它很简单,再普通不过的微观粒子,无处不在,轻盈透明。但它并不因为简单就
失去了重要性,恰恰相反,它是人类赖以生存的必要条件,正是由于无处不在的水,人类才能过着安乐、舒适的生活。而水的流淌,也关系到了整个民族的命脉与历史,黄河两岸,尼罗河边,印度河畔,都各自哺育了一个古老而富有生命力的民族。水,就是这样,看似柔弱,实则坚韧,聚点滴成波涛,汇大湖而成四海。所以,当它流进殷末周起的中华历史时,有了一个被称为“睡在羊背上的人”,在他那本影响后世甚广的《道德经》中写道:上善若水。
上善若水,仅此一句话,便叫人体会到水的意境:简单,深远,丰富,坚韧。它是说做人也要像水这样,简单朴实,孕意深广,人若能做到像水一样,那便为上善了。
也许会有人觉得再简单不过,可是又有几个人能真正做到上善若水呢?水一样的纯净,水一样的澄明,水一样的大智若愚,水一样的源远流长?这样的人必是心性至善至深之人,他能在喧闹中开辟出自己的一席田地,他能在纷扰乱世中找到自己的归隐,他能在流言蜚语中静下自己的耳根,这样的人必是与山为邻,为水为友,出仕则心神俱孤,但仍然超然物外,淡泊宁静。
我想世上有很多这样的人,他们秉承了水的坚韧与灵性,在尘世中静守一份自己的净土,待人接物永远笑脸谦和,偶遇知音则被挖掘惊世才情,来时干干净净,走时了无牵挂,只留下水流过的痕迹——那思想的光辉与伟岸的人性。
上善若水,简单,却那么难。
E8.Net工作流平台 提升企业战略执行力
ITIL与ITSM QQ群4:1260249
.NET企业应用开发与工作流QQ群:41553575
http://www.feifanit.com.cn/
posted @
2008-07-14 10:43 朱明春 阅读(125) |
评论 (0) |
编辑
确认需求的关键: 确认并非只是重复对方说过的话,重复是表面上对内容的理解。
真正的确认要求的是对方话语背后隐含的意思。
为什么要确认需求:
1、误解的产生
我们总是倾向于听我们想听的内容、看我们想看的东西,导致我们产生的印象往往并不与对方的意图相吻合。
误解产生时,双方却都对出现的误解一无所知。
通过告诉对方我们对他的信息的理解,来证实或澄清我们所产生的印象。
确认能够保证我们准确了解对方的意思。
2、确认是积极倾听的回应
围绕调研目标,对问题背后的问题、关联问题、发掘的新需求深入了解。
框定需求的边界,把握谈话的方向。
鼓励对方继续说下去。
下列情况一定需要确认:
当不确定对方的意思时;
当对方给予的是重要信息时;
当发现关键问题、关联问题和新需求点时。
<学习总结笔记>
E8.Net工作流架构将管理思想融入到管理软件设计中来,提升软件生产力。欢迎访问: http://www.feifanit.com.cn/
E8.Net工作流平台 提升企业战略执行力
ITIL与ITSM QQ群4:58342347
.NET企业应用开发与工作流QQ群:17110384 53284682(已满) 42302450(已满)
http://www.feifanit.com.cn/
posted @
2008-07-08 10:18 朱明春 阅读(242) |
评论 (0) |
编辑
ITIL与ITSM QQ4号群:1260249
.NET企业应用开发与工作流QQ 4号群:41553575