linux c调用wcf服务,Silverlight+WCF实现跨域调用

在这篇文章中,WCF扮演服务器,向外提供LoginVaild服务;Silverlight扮演客户端,调用WCF提供的LoginVaild服务。思路有了,下面进行代码实现。

数据库脚本实现

新建T_User表,在表中添加两个字段username、password,向表中插入一条数据admin admin,脚本如下:

USE [test]

GO

/****** Object:  Table [dbo].[T_User]    Script Date: 09/28/2014 21:12:02 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[T_User](

[username] [varchar](20) NOT NULL,

[password] [varchar](20) NOT NULL,

CONSTRAINT [PK_T_User] PRIMARY KEY CLUSTERED

(

[username] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

INSERT [dbo].[T_User] ([username], [password]) VALUES (N'admin', N'admin')

WCF服务器实现

1.新建一个WCF服务库项目,在默认生成的IServer1.cs接口在添加LoginVaild服务的声明:

[OperationContract]

bool LoginVaild(string userName, string password);

2.添加ADO.Net实体数据模型文件--Model.edmx,用于对数据表T_User的访问;

3.在Service1.svc中对LoginVaild方法进行实现:

public bool LoginVaild(string userName, string password)

{

bool result = false;

//需要访问的ADO.Net数据实体模型

using (SLtestEntitiesSecond entities = new SLtestEntitiesSecond())

{

var user = entities.T_User.Where(c => c.username == userName && c.password == password).SingleOrDefault();

if (user == null)

{

result = false;

}

else

{

result = true;

}

}

return result;

}

4.在项目的根目录添加跨域访问文件clientaccesspolicy.xml,内容如下:

5.设定WCF服务器使用特定端口进行访问,方法:选中WCF服务器项目-->邮件属性-->Web-->特定端口,输入1316。这样保证我们每次可以通过1316端口访问WCF提供的服务。

到此,WCF服务器端配置完成,选中Service1.svc文件,在浏览器中浏览器下WCF提供的服务。

Silverlight客户端实现

1.新建Silverlight应用程序,在引用中添加服务引用,在地址栏输入Service1.svc文件在浏览器中的路径,比如我的是:http://localhost:1316/Service1.svc;

2.新建Silverlight用户控件Login.xaml文件,在显示页面添加用户名、密码TextBox和登录Button;

3.在Login.xaml后台通过调用WCF提供的服务对用户输入进行判断,代码如下:

private void button1_Click(object sender, RoutedEventArgs e)

{

string userName = txtusername.Text.Trim();

string password = txtpassword.Text.Trim();

Service1Client client = new Service1Client();

client.LoginVaildCompleted += new EventHandler(client_LoginVaildCompleted);

client.LoginVaildAsync(userName, password);

client.CloseAsync();

}

void client_LoginVaildCompleted(object sender, LoginVaildCompletedEventArgs e)

{

if (e.Error == null)

{

//MessageBox.Show(e.Result.ToString());

if (e.Result == true)

{

this.Content = new MainPage();

}

else

{

MessageBox.Show("用户名或密码错误!");

}

}

else

{

MessageBox.Show(e.Error.ToString());

}

}

4.在App.xaml配置文件设置Login.xaml为起始页,代码如下:

private void Application_Startup(object sender, StartupEventArgs e)

{

this.RootVisual = new Login();

}

到此,客户端配置完成,运行Silverlight客户端项目即可查看结果。源码下载地址:

------------------------------------------分割线------------------------------------------

具体下载目录在 /2015年资料/2月/27日/Silverlight+WCF实现跨域调用/

------------------------------------------分割线------------------------------------------

现在回首整个实现过程,有点面向服务编程的意思:WCF提供一个服务,然后把访问服务的接口公开,想调用此服务的项目只要添加此服务的引用便能调用WCF提供的服务。

在实现过程中,有个问题至今尚未解决,在WCF服务器项目中配置ADO.Net实体数据模型时,如果是用SQL Server的SQL Server身份验证方式登录,便会报“服务器返回了错误 Not found”异常;改成Windows身份验证问题解决。这是个治标不治本的解决方案,对此问题,希望大神能够给出解释。

0b1331709591d260c1c78e86d0c51c18.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第3篇:Flowable快速工作流脚手架Jsite_关闭演示模式

接上一篇:第2篇:Flowable快速工作流脚手架Jsite_配置项目 https://blog.csdn.net/weixin_40816738/article/details/103387623 说明:此版本我已经调通,最新版本正在更新,页面未处理好,因此采用历史版本。 文…

从单租户IaaS到多租户PaaS——金融级别大数据平台MaxCompute的多租户隔离实践

摘要:在2017年云栖大会•北京峰会的大数据专场中,来自阿里云的高级技术专家李雪峰带来了主题为《金融级别大数据平台的多租户隔离实践》的演讲。在分享中,李雪峰首先介绍了基于传统IaaS单租户架构做隔离时面临的问题;然后&#xf…

IDC 2019Q1云市场报告重磅出炉;英特尔与百度签署3年新协议;谷歌收购云存储公司 Elastifile,增强自家……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go ChinaJoy中任天堂亮相&#…

可靠度理论中“设计基准期”、“设计使用年限”、“使用寿命”几个概念的区分

文章目录 0. 背景1. 重现期2. 设计基准期3. 设计使用年限调整系数4. 一把杆秤5. 调整系数的补充说明Last 0. 背景 在可靠度理论中,经常遇见“设计基准期”、“设计使用年限”、“使用寿命”几个概念。这些概念搞不清楚对于梳理结构荷载组合而言就是致命的。本文也是…

第4篇:Flowable快速工作流脚手架Jsite_启动项目

接上一篇:第3篇:Flowable快速工作流脚手架Jsite_关闭演示模式 https://blog.csdn.net/weixin_40816738/article/details/103388349 说明:此版本我已经调通,最新版本正在更新,页面未处理好,因此采用历史版本…

基于MaxCompute搭建社交好友推荐系统

摘要:本次由阿里云驻云科技资深架构师翟永东带来了“基于MaxCompute搭建社交好友推荐系统”为主题的分享,主要对大数据在好友推荐系统中的应用、好友推荐系统的分析模型、好友推荐系统在阿里云上的实现方式和MaxCompute技术进行了精彩的介绍。 点此查看原…

高德地图基于阿里云MaxCompute的最佳实践

摘要: 云计算带来的变革不言而喻,作为一种新型的IT交付模式,切实为企业节省IT成本、加快IT与企业业务结合效率、提升创新能力、加强管理水平以及增强系统本身的可靠性等方面提供巨大支持,是企业实现新发展的重要途径,它…

如何从零开始设计一颗芯片?

戳蓝字“CSDN云计算”关注我们哦!来源:陌上风骑驴看IC作者:陌上风骑驴在各方助力下,集成电路成了时代热点,有大量文章在写芯片设计之复杂之困难,老驴打算从EDA 使用角度捋一遍芯片设计流程。在老驴画出第一…

第5篇:Flowable快速工作流脚手架Jsite_请假实战_部署流程和发起流程

接上一篇:第4篇:Flowable快速工作流脚手架Jsite_启动项目 https://blog.csdn.net/weixin_40816738/article/details/103388465 说明:此版本我已经调通,最新版本正在更新,页面未处理好,因此采用历史版本…

离线计算中的幂等和DataWorks中的相关事项

摘要: 概念 幂等这个词在软件研发中经常被提到。比如消息发送时不应该同时给同个用户推送多次相同的消息,针对同一笔交易的付款也不应该在重试过程中扣多次钱。曾见过一个案例,有个对于一个单据的确认模块没有考虑到幂等性,导致对…

解决在待办任务菜单中都会抛出异常,由于definitionId=undefined导致的问题

文章目录一、部门经理流转1. 登录dept账号2. 在待办任务中,签收任务3. 在待办任务中,办理任务3.1. 响应码5003.2. 请求的url3.3. 页面传递的参数3.4. 控制台报错信息提取3.5. 在获取代办列表FlowTaskService的104行3.6. 在获取代办列表FlowTaskService的…

程序员竟以身试“色”,只因给女友选七夕礼物!看完我酸了

戳蓝字“CSDN云计算”关注我们哦!作者 | 伍杏玲出品 | 程序人生(ID:coder_life)铛铛档,你知道 8 月 7 号是什么日子吗?除了是工作日的星期三,它还是七夕情人节!在程序员一片哀嚎“我…

第6篇:Flowable快速工作流脚手架Jsite_请假实战_部门经理审批

接上一篇:第5篇:Flowable快速工作流脚手架Jsite_请假实战_部署流程和发起流程https://blog.csdn.net/weixin_40816738/article/details/103388680 说明:此版本我已经调通,最新版本正在更新,页面未处理好,因…

华为正式发布方舟编译器,相关源码已开放下载;微软开源量子开发工具包 QDK;GitHub回应突然断供:也很无可奈何的样子……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 本田1.34亿份文档&#xff0…

【MPS最佳实践】媒体工作流转码

摘要:背景 1个输入文件对应多个输出文件(不同分辨率,不同格式等),通过控制台的图形化界面,快速搭建常用视频处理流程。 优势 简单易用,视频上传完成自动触发转码任务。 功能强大,支持…

解决由于没有办理权限导致的403,权限不足

接上一篇:解决在待办任务菜单中都会抛出异常,由于definitionIdundefined导致的问题 https://blog.csdn.net/weixin_40816738/article/details/103389663 文章目录一、问题现象二、问题定位三、解决方案3.1. 登录jsite系统管理员账号,给dept用…

音视频转码技术指南:国内主流云转码服务提供商对比测评

摘要:随着大量视频产生,怎样才能够高效精准地对视频进行云端转码和处理,来适配多终端展示需求和应对复杂的网络情况,是我们视频行业开发人员工作的重中之重。作为从业者,我们会经常接触各大云转码服务商,对…

突发!Python再次第一,Java和C下降,凭什么? ​

编程语言流行指数(PYPL)排行榜近日公布了2019年8月份榜单。在最新一期榜单上, Python的份额高达28.73%,再次蝉联第一,并且增长4.5%,同时成为增长势头较好的语言。而被挤到第二蝉联Java,同比下跌2.1个百分点…

第7篇:Flowable快速工作流脚手架Jsite_请假实战_HR审批

接上一篇:第6篇:Flowable快速工作流脚手架Jsite_请假实战_部门经理审批 https://blog.csdn.net/weixin_40816738/article/details/103388916 说明:此版本我已经调通,最新版本正在更新,页面未处理好,因此采用…

智能助手被指侵犯用户隐私,美三大科技巨头或面临调查;传小米已解散其VR头显Mi VR团队;特斯拉成立反欺诈部门……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 谷歌将关闭手机端旅游应用Tr…