我使用的是 SOAP 标头,我需要从数据库中对其进行身份验证。因此,我尝试创建一个类并使用一种方法,当我们传递用户名和密码时,它将返回数据库中是否存在。
----- 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 扔到一个对象的实例中。我已经为应用程序中的方法设置了用户名、密码和 Headervalue。但它没有达到“ ValidateUser ”方法。
有什么方法可以实现这一目标吗?