silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight学习笔记三:WCF跨域调用,实现登陆页大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

WCF服务应用程序端: 建立WCF服务应用程序,并连接数据库。 【1】:新建WCF服务应用程序。 【2】:在Iservice1.cs中,添加代码: //登陆函数 [OperationContract] bool LoginVaild(String username,String pwd);   然后,在service1.svc.cs文件中 ,在接

WCF服务应用程序端:

建立WCF服务应用程序,并连接数据库

【1】:新建WCF服务应用程序。

【2】:在Iservice1.cs中,添加代码

        //登陆函数
        [OperationContract]
        bool LoginVaild(String username,String pwd);

 


然后,在service1.svc.cs文件中 ,在接口上

 

Silverlight学习笔记三:WCF跨域调用,实现登陆页

点击右键,实现接口。

此时,会自动生成一个函数

       public bool LoginVaild(String username,String pwd)
        {
            throw new NotImplementedException();
        }


在这函数添加登陆代码

 

WCF连接数据库

【3】:新建数据库

Silverlight学习笔记三:WCF跨域调用,实现登陆页

添加一个用户用户名和密码都为:admin,方便后面登陆测试。

【2】:为WCF项目添加ADO.NET数据库实体模型

Silverlight学习笔记三:WCF跨域调用,实现登陆页

Silverlight学习笔记三:WCF跨域调用,实现登陆页

 

Silverlight学习笔记三:WCF跨域调用,实现登陆页

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项目,右键=》属性=》

Silverlight学习笔记三: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());
            }
        }


 

 运行项目,会发现出错了,错误如下:

Silverlight学习笔记三:WCF跨域调用,实现登陆页

错误原因,当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,请注明来意。