大佬教程收集整理的这篇文章主要介绍了Silverlight学习笔记三:WCF跨域调用,实现登陆页,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
WCF服务应用程序端:
建立WCF服务应用程序,并连接数据库。
【1】:新建WCF服务应用程序。
//登陆函数 [OperationContract] bool LoginVaild(String username,String pwd);
点击右键,实现接口。
public bool LoginVaild(String username,String pwd) { throw new NotImplementedException(); }
WCF连接数据库:
【3】:新建数据库:
并添加一个用户,用户名和密码都为:admin,方便后面登陆测试。
OK.
【4】:编写登陆代码:
public bool LoginVaild(String username,String password) { bool result = false; using (SLtestEntities entities = new SLtestEntities())//建立实体模型代理 { var user = entitieS.UserInfo.Where(c => c.user_name == username && c.password == password).SingLeorDefault(); if (user==null) { result = false; } else { result = true; } } return result; }
【5】:固定端口
WCF项目,右键=》属性=》
【6】:生成一下解决方案,在浏览器中打开service1.svc,从而开启服务。至此,WCF完成。
Siverlight端:
【1】新建项目,建立Siverlight应用程序。
【2】:添加服务引用。
【3】:新建 Siverlight用户控件,作为登陆界面,命名为Login.xaml。改启动页面为Login.xaml。
【4】:编写登陆代码:
private void button1_Click(object sender,RoutedEventArgs E) { String username = textBox1.Text.Trim(); String pwd = passwordBox1.password.Trim(); service1Client client = new service1Client(); client.LoginVaildCompleted += new EventHandler<LoginVaildCompletedEventArgs>(client_LoginVaildCompleted); client.LoginVaildAsync(username,pwd); client.CloseAsync(); } void client_LoginVaildCompleted(object sender,LoginVaildCompletedEventArgs E) { if (e.Error==null) { if (e.Result==truE) { this.Content = new MainPage();//页面转跳到MainPage } else { messageBox.Show("用户名或者密码错误!"); } } else { messageBox.Show(e.Result.ToString()); } }
运行项目,会发现出错了,错误如下:
错误原因,当Siverlight想WCF发出跨域请求时候,会问WCF是否允许接受跨域请求,怎么样WCF允许跨域请求呢?WCF必须有跨域文件
跨域文件名字必须是:clientaccesspolicy.xml
<?xml version="1.0" encoding="utf-8" ?> <access-policy> <cross-domain-access> <policy> <allow-from http-request-headers="*"> <domain uri="*"/> </allow-from> <grant-to> <resource path="/" include-subpaths="true"/> </grant-to> </policy> </cross-domain-access> </access-policy>
解决办法:在WCF项目中添加此跨域文件,并重新生成解决方案。
@H_675_165@
至此,本节内容结束。以上是大佬教程为你收集整理的Silverlight学习笔记三:WCF跨域调用,实现登陆页全部内容,希望文章能够帮你解决Silverlight学习笔记三:WCF跨域调用,实现登陆页所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。