即时通讯使用SOAP标题,我需要从数据库进行身份验证。所以,我试着创建一个类,并有一个方法,当我们传递用户名和密码时,它将返回它是否在数据库中。SOAP Header身份验证不起作用?
----- My Main Class ---
[WebMethod, SoapHeader("AuthenticateUser")]
public System.Xml.XmlElement CancelUSer(string _UserID, string _Remarks)
{
if (UsersAuth.ValidateUser(AuthenticateUser.UserName, AuthenticateUser.Password) > 0)
{
//METHODS
}
}
public class UserAuthenticateHeader : SoapHeader
{
public string UserName;
public string Password;
}
public class UsersAuth
{
static OracleConnection con;
public UsersAuth()
{
con = new OracleConnection(WebConfigurationManager.ConnectionStrings["conString"].ToString());
}
public static int ValidateUser(string _UserName, string _Password)
{
int Result = 0;
using (OracleCommand cmd = new OracleCommand("SELECT COUNT(*) FROM USES WHERE UID=:UID AND PASSWORD=:PASSWORD", con)) {
cmd.Parameters.AddWithValue(":UID", _UserName);
cmd.Parameters.AddWithValue(":PASSWORD", _Password);
con.Open();
Result = Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
}
return Result;
}
}
现在,当我把这个从我的程序它扔他ObjectReferenceNotSet到对象的实例。我已经为应用程序中的方法设置了用户名,passsword和Headervalue。但它没有击中“ValidateUser”方法。
有什么办法可以实现这个目标?