我现在想实现,在winform控件里调用我的一个ws,并且用到了soaphead来进行安全验证,其实就是在里面加入用户名和密码。
然后在前台给对应的ws代理的相应属性赋值。
问题出在,我用一个简单的winform用相同的机制调用这个ws,可以成功,但是如果用到winform控件中的时候,我是把winform控件嵌入一个winform窗口里,但是,在我想把这个用户控件拖入窗口的时候,编译器提示我出现了“未通过安全验证”,这个提示是我在ws里进行验证的时候抛出的异常信息。
请问,这是为什么?十万火急!!!
然后在前台给对应的ws代理的相应属性赋值。
问题出在,我用一个简单的winform用相同的机制调用这个ws,可以成功,但是如果用到winform控件中的时候,我是把winform控件嵌入一个winform窗口里,但是,在我想把这个用户控件拖入窗口的时候,编译器提示我出现了“未通过安全验证”,这个提示是我在ws里进行验证的时候抛出的异常信息。
请问,这是为什么?十万火急!!!
{
public string Username;
public string Password;
}
webservice的代码public class FeeApplyWS : System.Web.Services.WebService
{
public FeeApplyWS()
{
//CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
InitializeComponent();
} public AuthHeaderCS sHeader;
private FeeManageWS.FeeApplyService.RecordApply ra = new RecordApply();
#region 组件设计器生成的代码
//Web 服务设计器所必需的
private IContainer components = null;
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
} /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}
#endregion [WebMethod]
[SoapHeader("sHeader", Direction=SoapHeaderDirection.In)]
//就是这个sheader取不到东西,但是如果是在winform里直接调用就可以取得到
public void GetAllFeeType(ref DataSet ds)
{
try
{
WSValidate.I_AuthenticateUser(sHeader);
ra.GetAllFeeType(ref ds);
}
catch(Exception err)
{
string ErrorMessage=err.Message;
SoapException sErr=new SoapException(ErrorMessage,SoapException.ServerFaultCode);
throw(sErr);
}
}
}