Category: Web Back-end

配置ASP.NET中使用SQL Server模式的Session State 0

配置ASP.NET中使用SQL Server模式的Session State

作者通过亲自试验,完成了在Plesk平台下的SQLServer模式会话状态的配置。具体步骤如下: 为回话状态建立或是选择相应的数据库Database(Create New Data­ba­se) 执行会话状态模板SQL语句 首先进入文件夹C:\Windows\Microsoft.NET\Framework\version_ID\,对于ASP.NET 2.0来说,一般version_ID是v2.0.50727。然后找到InstallSqlStateTemplate.sql,并将文中所有Data­ba­se­Na­me­Pla­ce­Ho­lder替换为你自己的数据库名称,最后将此SQL拖到数据库上执行 此时也许你会发现,测试SQL语句没问题,但是执行的时候出现了一些问题如下: ————————————————- Sta­r­ting exe­cu­tion of InstallSqlStateTemplate.SQL ————————————————- ————————————————– Note:                                             This file is inclu­ded for backwa­rd compa­ti­bi­li­ty  only.  You shou­ld use aspnet_regsql.exe to insta­ll and unin­sta­ll SQL session…

浅谈ASP.net中使用WebServices的安全性保证 0

浅谈ASP.net中使用WebServices的安全性保证

在开发一些在线业务的时候,对于一些客户端程序,我们需要将数据存储在网络上,即使用传统的C/S结构。随着WebServices的出现,我们可以用很低的成本在成熟的网络上架构这种结构,不必单独去购买数据中心服务器了。 实现的方法主要是:购建一个支持asp.net 2.0以上版本的虚拟服务器,然后在上面部署WebServices环境,通过调用asmx的方法对后台的数据库(MySQL、MS-SQL、Access等)进行数据库访问。而在客户端方面,我们就可以使用窗体了而不是Browser。通过调用后台的Services完成数据的交换。 数据交换容易,搭建WebServices也不是一件难事。但是难点在于,我们如何在这种基于HTTP下(没有SSL和证书)、透明的WebServices下,来保证Services的安全性?现在世面上的虚拟主机空间都不支持https。如何快速开发一个小DataServices呢?当然,我们第一步的考虑肯定是在每一个Service里面加上两个额外的参数:用户名和密码。这个可行,但是复杂度增加不少;后来我也考虑过使用Session来做。但是这种方法,只能适合在浏览器上的测试;而对于实际的客户端程序来讲,无疑没有什么作用。 通过学习,我掌握了一种在SOAP头中增加身份信息描述的方法;在客户端,只需要保存一个相关的身份验证对象,每次调用Services的时候就可以不必去考虑身份的问题了。Stub端会将身份信息绑定到SOAP Hea­d中。 每次访问服务器,便会触发一个HttpModule来对身份进行验证。在Services体中,我们只需要判断是否已经通过身份验证即可。 首先我们要构造这个HttpModule。这是一个继承了IHttpModule接口的类,用来截获来自客户端的XML文件,并对其SOAP Head进行解析,找出我们需要的用户名和密码的信息,并交由WebServiceAuthenticationEventHandler所触发的事件来去判断身份。 using System; using System.Web; using System.IO; using System.Xml; using System.Xml.XPath; using System.Text; using System.Web.Services.Protocols;   name­spa­ce Jing­Zhi­We­bServi­ce { public sea­led cla­ss WebServi­ceAu­then­ti­ca­tion­Mo­du­le : IHttpMo­du­le {…

1

小程序

用了近三个晚上开发了一个小程序——“精致三面翻”售出存档表,主要帮助我爸的公司进行数据整理。用到了ASP.net 2.0的技术。 虽然程序很小,但是相信对于父亲的公司还是挺有帮助的。开发过程中有一些小体会和经验: 程序并不是代码越优美越好。对于一些小程序,快速开发,省略一些无关紧要的问题显得非常重要。对于软件工程科班出身的我,编码时命名很难不想到匈牙利命名法。。如果我们把时间都花在校正变量上,那么无异于浪费。我的策略:将主要用到的TextBox/DateTimePicker等一些类的对象加以合理命名,其它的则随系统的自身命名好了。另外数据库选用了Access,表名、字段名全部中文。。加上.net 2.0的DataSet,开发非常快捷。。时间多半花在了画界面上。。 如果程序中出现几个大块相同的地方,建议把他们做成UserControl加以调用。省时省力。 如果你使用的是Access数据库,在进行参数传递的时候,变量名不要是SqlServer中的“select * from table whe­re username=@username”,而应该是:“select * from table whe­re username=?”。问号足矣。这点也花了我一定的时间。 对于.net的数据库,配置文件对它的路径描述是:|DataDirectory|。那么我们怎么找到这个文件夹呢?答案是:Application.LocalUserAppDataPath。这个有的时候很重要。。比如在我的备份功能那块。。 利用.net fra­mwo­rk 2.0发送mail的代码不用找了,我提供一个能用于gmail的,放在下面了。 Icon­Wo­r­ksho­p软件做出来的i­con很好看! That’s it. ^_^ public void SMTP(string from, string to, string bcc, string…