随笔分类 -  WCF

WCF自定义授权
摘要: 以前写过一篇WCF自定义用户名密码认证,用户必须输入正确的用户名和密码才能调用WCF服务提供的操作契约(OperationContract),但没有限制某个用户可调用契约的范围,即默认每个用户都可调用该服务下的所有契约,WCF自定义授权用来为用户授权特定的操作契约,并在用户调用的时候对用户的授权进行验证,只有通过验证的用户才可调用该契约,这中将权限控制在OperationContract层次对企业级应用来说是必要的。 阅读全文
posted @ 2010-11-25 10:35 小庄 阅读(3815) 评论(18) 推荐(4) 编辑
使用Silverlight3中的DataPager实现服务器端分页
摘要:代振军同学的blog中描述了使用DataPager实现客户端分页:http://www.cnblogs.com/daizhj/archive/2009/08/07/1529331.html一般说来,在项目中一般很少使用这种客户端的分页方式,除非数据量很少(干脆不分页算了)。把大量的数据一次性传输到客户端可不是个明智的做法,我们一般都是从客户端传入查找条件参数(包括过滤条件和分页条件参数),然后服务... 阅读全文
posted @ 2009-08-17 15:15 小庄 阅读(6280) 评论(20) 推荐(5) 编辑
贾君鹏你妈妈喊你回家吃饭-利用WCF的Duplex推送消息
摘要:有点标题党了,最近因工作需要,想利用WCF的Duplex服务向Winform程序推送消息,写了个示例,主要参考了artech的相关文章和其他一些利用WCF向SilverLight客户端推送消息的文章。 先看运行效果:在网页中发送消息,Winform端接收到消息 阅读全文
posted @ 2009-07-22 16:42 小庄 阅读(6557) 评论(18) 推荐(6) 编辑
WCF的用户名密码认证
摘要:WCF支持多种认证技术,例如Windowns认证、X509证书、Issued Tokens、用户名密码认证等,在跨Windows域分布的系统中,用户名密码认证还是比较常用的,要实现用户名密码认证,就必须需要X509证书,为什么呢?因为我们需要X509证书这种非对称密钥技术来实现WCF在Message传递过程中的加密和解密,要不然用户名和密码就得在网络上明文传递!详细说明就是客户端把用户名和密码用公钥加密后传递给服务器端,服务器端再用自己的私钥来解密,然后传递给相应的验证程序来实现身份验证。 阅读全文
posted @ 2008-04-30 11:23 小庄 阅读(23607) 评论(38) 推荐(4) 编辑
使用WCF上传文件
摘要:WebService来上传文件存在的问题是效率不高,而且不能传输大数据量的文件,当然你可以用Wse中的MTOM来传输大文件,有了WCF就好多了,通过使用WCF传递Stream对象来传递大数据文件. 阅读全文
posted @ 2008-04-01 16:39 小庄 阅读(21938) 评论(28) 推荐(4) 编辑
第三节:ExtJS调用WCF系列-----添加,修改,删除
摘要:我们继续上一节中的那个项目,给那个员工列表增加 添加修改删除功能。和上一节一样,我们先从服务器端说起,服务器端需要提供WCF接口给客户端调用,我们先来写几个BLL的数据处理方法 然后在EmployeeService.svc文件中把这几个方法封装WCF接口 这样服务器端的工作就完成了,下面到客户端.也就是EXTJS的代码编写,这里要注意两个问题: 一个是关于WCF传递过来的日期型数据和从EXTJS的form中取得的日期型数据相互转化的问题,WCF传递过来的日期形式为“\/Date(62831853071)\/”括号里面的数字是UTC时间,我们需要设置Ext.form.DateField的format : "Y-m-d",然后把两种类型在通讯之前进行相互转化。 第二个是当BodyStyle = WebMessageBodyStyle.Wrapped 的时候WCF会自动把传递过来的值进行封装,这个在第二节的时候有详细说明,在把WCF传过来的值转化为ExtJS需要的对象的时候去掉这个封装。 基于以上两点,我写了一个WCFHelper.js的文件,代码如下 阅读全文
posted @ 2007-12-18 12:59 小庄 阅读(10046) 评论(39) 推荐(1) 编辑
第二节:ExtJS调用WCF系列-----分页排序列表实现
摘要:这次我们使用一个测试的数据库CompanyInfoDB,里面有两张表,部门和员工,并外键关联,数据库调用采用Linq的Sqlmetal 命令方式,在Visual Studio 2008的命令提示符中输入以下命令:D:\Program Files\Microsoft Visual Studio 9.0\VCsqlmetal /conn:server=172.16.1.52;database=CompanyInfoDB;uid=sa;pwd=sa123456 /map:c:\LinqTemp\CompanyInfoDB.map /code:c:\LinqTemp\CompanyInfoDB.cs /serialization:Unidirectional 然后把生成的CompayInfo.map 文件和CompanyInfo.cs文件加入到项目中,并添加System.Data.Linq的引用,还要修改一下Web.Config 加入数据库链接字符串和XmlMappingSource文件的位置。 阅读全文
posted @ 2007-12-11 10:17 小庄 阅读(8578) 评论(12) 推荐(0) 编辑
第一节:ExtJS调用WCF系列-----实现JSON传递
摘要:首先我们打开我们的VS 新建一个Asp.Net WebApplication Project,(不要给我说新建网站,我讨厌那个东东) 命名为ExtJSAndWCFChapter1 如图: 接下来我们在该项目中新建一个实体类文件和一个AJAX—Enabled WCF SERVICE,分别命名为Employee.cs 和EmployeeService.svc 下面去ExtJS.Com网站下载一个E... 阅读全文
posted @ 2007-12-07 18:14 小庄 阅读(12740) 评论(17) 推荐(2) 编辑
ExtJS调用WCF系列
摘要:ExtJS调用的服务器端目前有三种实现方式 一种是网页的方式,他的Content-Type:是application/x-www-form-urlencoded,这种方式适用范围比较广泛,只要是能输出网页的服务器端环境都可以。ExtJS官方网站上的例子基本上都是这种形式,服务器端的环境是PHP,http://cmsoft.cnblogs.com/ 是实现这种方式的.net版本,不过让我这样来写dotNet代码我可不愿意。 一种是WebService的方式,也就是通过XML在服务器和客户端传递数据的方式,在DotNet下这种实现方式比较复杂,也比较搞笑,原因是在服务器序列化的xml要在客户端用Asp.Net Ajax才可以反序列化,然后才能被ExtJS调用,我既然用了ExtJS框架,还得再用ASP.Net AJAX框架,实在不爽! 还有一种是WCF的形式,他的Content-Type是 application/json,其原理是基于JSON来在服务器端和客户端传递数据,我们必须得定义服务器端方法的输入,输出参数为JSON形式才可以,其次还得进行URL重写等(其实就 阅读全文
posted @ 2007-12-07 18:00 小庄 阅读(8433) 评论(7) 推荐(0) 编辑
Asp.Net Ajax+WCF Service+ADO.NET Entity Framework实现数据列表,数据筛选,分页,排序,删除
摘要:编写这个Demo的目的主要是为了把最近学到的一些vs2008开发技术做一个综合归纳,并跟大家探讨一下这些技术在实际项目应用中遇到的一些问题。先来简单介绍一下这个Demo: 1、 解决方案分为三个项目,分别对应Data Access,Business Logic和User InterFace 2、 Data Access Layer 使用ADO.NET Entity Framework实现对象关系映射和数据库访问,Business Logic Layer 使用Linq(linq to Entities),BuilderMethod,EntitySQL 实现对实体对象的操作和业务规则控制,User Interface Layer 使用Asp.Net Ajax+WCF Service实现用户和应用程序交互,Web页面采用纯粹的JavaScript +AJAX,没有用任何服务器控件。 3、 程序功能实现了对部门信息查询,员工信息列表,筛选,分页,排序,删除。 阅读全文
posted @ 2007-11-02 11:18 小庄 阅读(5642) 评论(15) 推荐(0) 编辑
ASP.NET Ajax调用WCFService(VS2008 beta2 简体中文版)
摘要:看见Dudu大哥写了一篇ASP.NET Ajax =》WCF(.NET 3.5 Beta 2,VS2005) 觉得挺有意思,以前没有WCF的 时候我们都是调用Webservice,当然调用页面.cs里面的静态方法也可以;听说WCF的目标就是要替换以前那 些实现分布式的技术,例如WebService,那我们也只好改成调用WCFService 了。到底这两种孰好孰差?大 家可以讨论一下: 首先建立一个WebApplication项目,例如叫做AjaxAndWCFWebApplication:(默认支持AJAX) 阅读全文
posted @ 2007-09-29 12:56 小庄 阅读(3749) 评论(5) 推荐(0) 编辑