急webservice Forms印证报错
发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
急急:webservice Forms验证报错
各位大侠好:
小弟在做webservice的Forms验证时遇到错误!现在有两个网站,一个是webservice(两个asmx,一个Service.asmx只有helloworld方法,另一个Login.asmx负责身份验证),期web.config配置如下
<authentication mode="Forms">
<forms name="Service" loginUrl="Login.asmx"></forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
一个是webservice调用,webservice发布后调用会出现循环调用,应该是loginUrl这里的问题!但是不知道怎么解决!?希望大家帮帮忙!先谢谢了!
我参考的是这篇文章:http://web.rdxx.com/ASPNET/ASPNET_Skill/2007/6/278173178177.shtml
------解决方案--------------------
web.config里是没有错误的
我晚上做了一下你所说的那篇网上的文献,把具体步骤发给你希望有所帮助吧
首先我写了一个名为login.asmx的WebService文件,放在C:Inetpubwwwroot目录下,这样一来只要本地的IIS服务是开着的就可以很方便的调用了。
<%@ WebService Language="C#" Class="login" %>
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
/// <summary>
/// login 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class login : System.Web.Services.WebService {
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
[WebMethod]
public bool Check(string userName, string password)
{
if (userName == "raindust" && password == "123456")//添加验证逻辑
{
System.Web.Security.FormsAuthentication.SetAuthCookie(userName, false);
return true;
}
else
{
return false;
}
}
}
然后新建一个基于C#的控制台应用程序(因为我在文章中看到了Console.WriteLine()函数),然后在资源方案管理器中右击点“添加web引用”,选择“本地计算机上的web服务”,这样就能看到我们刚才创建的login服务了,我给的web服务的引用名是“MyServiceLogin”,接下来便是控制台程序的所有代码:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
System.Net.CookieContainer cookieContainer = new System.Net.CookieContainer();
public void Login()
{
MyServiceLogin.login login = new ConsoleApplication1.MyServiceLogin.login();
login.CookieContainer = cookieContainer;
login.Check("raindust", "123456");
}
public void ShowHelloWorld()
{
MyServiceLogin.login service = new ConsoleApplication1.MyServiceLogin.login();
service.CookieContainer = cookieContainer;
Console.WriteLine(service.HelloWorld());
}
static void Main(string[] args)
{
Program user = new Program();
user.Login();
user.ShowHelloWorld();
}
}
}
编译运行,出现Hello world
楼主可能对原文中的WebService的客户端代理类理解有误,其实创建这个代理的过程就是我刚才添加的web引用的过程。所以不需要创建两个WebService文件,这篇文章讲的是服务器与客户端之间的通信而不是两个WebService之间的通信
这是我自己的理解,如果理解有误欢迎指正^_^
------解决方案--------------------
如果你有两个网站的话,是不需要下面这一句的
login.CookieContainer = cookieContainer;
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
这是一种动态图形人机界面(HMI)
传统的HMI人机界面一般是采用很多ActiveX控件堆放在一个画面上,每个ActiveX控件执行一个功能(例如曲...
-
数据库存了图片路径,获取时出了问题
我有两张页面,我的图片保存在sshh文件夹中,当主页要用到图片时候,路径是对的:web1/sshh/ss.jpg
但...
-
web Service 验证方式,该如何选择?
公司要开放WEB SERVICE,看了许多发现验证方式有:使用SoapHeader传递和验证用户、使用验证票(Autho...
-
Web Service 参数问题
我有三个工程,一个是类库A,一个WebService B,一个是应用程序 C
假设A中有一个类a,B中有两个ASMX b1,b...
-
打包WebService程序
我希望能把我的WebService程序制作成安装包,安装时能够自动建立网站运行,什么打包工具可以用,谢谢了!
------解...
-
Web Service 要增加附件 怎么做?
Web Service 通信时如果要增加图片或是声音文件 要怎么做?
最后附上代码
------解决方案--------...
-
wcf开发restful的服务
那位高手知道有wcf开发restful的服务的资料、源码、视频,请告知一下,不胜感激
------解决方案-------------...
-
ws在IIS上面发布之后,运行报错
我的代码如图,我就是写了一个简单的方法测试而已
在IIS上面发布之后如图
然后我右键预览,就出这个...
-
为什么ajax的webservice的后台文件必须放在App_Code目录下?
如题。放到其他地方就会报错。
------解决方案--------------------
...
-
刚接触WEBSERVICE,有问题特来请教前辈(关于发布)
最近公司要求使用WEBSERVICE,以方便以后的扩展,因此来学习下这个,但是现在看了蛮多例...