※※※※自定义 SOAP头 身份验证问题(郁闷)。※※※※※

曲滨_銘龘鶽 副总经理 产品总监 技术总监  2004-04-24 01:52:41
自定义 SOAP头
public class SelfSoapHeader : SoapHeader
{
public string UserNmae="";
public string Password="";
}
//一个简单的 WebService
public class Service1 : System.Web.Services.WebService
{
public SelfSoapHeader thisSoapHeader;
public Service1()
{
//CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
InitializeComponent();
}

组件设计器生成的代码....


// WEB 服务示例
// HelloWorld() 示例服务返回字符串 Hello World
// 若要生成,请取消注释下列行,然后保存并生成项目
// 若要测试此 Web 服务,请按 F5 键

[WebMethod,SoapHeader("thisSoapHeader")]
public string UserLoad()
{

if( thisSoapHeader.UserNmae=="FlashElf" && thisSoapHeader.Password=="1234")
{

return "True";

}
else
{
this.Dispose();
throw new Exception("用户严验证个失败!");

}
}

}
[WebMethod,SoapHeader("thisSoapHeader")]
public string HelloWorldTow()
{

return "HelloWorldTow";
}

}
//Windows 客户端 myServer 是上面的 WebService
private void button1_Click(object sender, System.EventArgs e)
{
SelfSoapHeader soap=new SelfSoapHeader();
soap.Password=textBox2.Text;
soap.UserNmae=textBox1.Text;
myServer.SelfSoapHeaderValue=soap;
try
{
label1.Text= myServer.UserLoad();

}
catch(Exception Ex)
{

MessageBox.Show(Ex.Message);

}

}

private void button2_Click(object sender, System.EventArgs e)
{
try
{

label1.Text= myServer.HelloWorldTow();
}
catch(Exception Ex)
{
MessageBox.Show(Ex.ToString());

}

}
///////////////////////////////////////////////////
问题是 自定义 SOAP头 内的 密码 和 用户 不管是否正确都可以 WebService 下的其他函数。 调用函数
现在即使调用 WebService 的 UserLoad() 失败也可以调用
WebService 下的其他函数。
问一下
如果要写身份验证是否 WebService 下的每个函数都要象UserLoad 函数那样验证一次

有没有什么方式可以
一次验证不成功 WebService 下的每个函数都不可调用。
我不想用 Windows 验证。。。
...全文
59 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
曲滨_銘龘鶽 2004-04-24
好了看来这问题就是个死结,我懂了,
完了我好去睡。我都郁闷了好几天了,
回复
snowszygq 2004-04-24
web service 中每一个WebMethod就是一个独立的接口。
他们之间是没有任意关系的。你调用一个,它返回给你要的东东后,后的使命就完成了。在它之中所产生的结果,不会对其它method产生影响。 解决方法一个就是你所说的在每个入口里都加一个验证。另一个就是用Session存储。在验证函数里验证,把结果写入Session,然后其它的只要读Session中的值就可以了。
回复
曲滨_銘龘鶽 2004-04-24
各位帮帮忙,我现在的一个工程 5000多函数
5000 个函数,老板要加验证!
要是就能
一个一个的加
我会累死的!
回复
wwhile 2004-04-24
up
回复
zytp 2004-04-24
up
回复
skylarkzcc 2004-04-24
我不会,帮你顶!
回复
曲滨_銘龘鶽 2004-04-24
帮忙顶一下 谢谢了各位!
那位帮帮忙,再线等待。
回复
曲滨_銘龘鶽 2004-04-24
帮忙顶一下 谢谢了各位!
回复
发帖
Web Services
创建于2007-09-28

1.2w+

社区成员

.NET技术 Web Services
申请成为版主
帖子事件
创建了帖子
2004-04-24 01:52
社区公告
暂无公告