即時通訊使用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」方法。
有什麼辦法可以實現這個目標?