ASP.NET MVC Neuling hier aus einem Webforms Hintergrund. Ich versuche, den eingeloggten Benutzernamen-Wert über HttpContext.User.Identity.Name
an eine gespeicherte Prozedur zu übergeben. Ich versuche im Grunde zu überprüfen, ob der Username
in der Datenbanktabelle existiert oder nicht. Ich denke, dass ich etwas übersehen habe, da ich nicht ganz sicher bin, wie ich den Wert User.Identity.Name
an die gespeicherte Prozedur übergeben kann, so dass sie ausgeführt wird und einen Wert zurückgibt, der entweder existiert oder null/blank
. Hier ist mein Code:ASP.NET MVC übergeben Parameter an gespeicherte Prozedur von Controller ohne Entity Framework
Datenzugriffsschicht Klasse:
public LoggedUser GetLoggedUser(LoggedUser obj)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["HWebb"].ConnectionString);
string UserName = "";
try
{
SqlParameter[] parameters ={
new SqlParameter("@USER_CRED",obj.User_Name),
};
SqlCommand cmd = CreateCommand("PortalWeb.GetSelect_User", parameters, con);
DataTable dt = new DataTable();
con.Open();
SqlDataAdapter ada = new SqlDataAdapter(cmd);
ada.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
if (dr["USER_CRED"] != DBNull.Value)
UserName = Convert.ToString(dr["USER_CRED"]);
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
}
return obj;
}
Modell:
public class LoggedUser
{
public string User_Name { get; set; }
}
Controller:
public ActionResult UserVerification()
{
DataAccess dac = new DataAccess();
LoggedUser objUser = new LoggedUser();
objUser = dac.GetLoggedUser(objUser);
if (HttpContext.User.Identity.Name != objUser.User_Name)
{
return RedirectToAction("Index", "Home");
}
return null;
}
Dies wird keinen Fehler verursachen, aber ich don‘ t denke, dass die Parameter korrekt übergeben werden, da die Tabelle einen Wert null
zurückgibt, und ich bin nicht sicher, dass ich f HttpContext.User.Identity.Name
Wert wird überhaupt an erster Stelle übergeben.
Gibt es eine Möglichkeit, den Wert vom Controller an die gespeicherte Prozedur zu übergeben? Ich bin neu in diesem Bereich, da bin ich mir sicher, dass mir ein Code fehlt, damit er voll funktionsfähig ist. Ich hoffe, dass jemand helfen kann.
Danke!
Crucial Ihre Frage zu beantworten ist der Code von Create. Ohne es zu wissen wer weiß, was an deine SP weitergegeben wird? nur du. – Steve
Könnten Sie bitte den Code für CreateCommand posten – vabii
Übrigens, die Logik Ihres Codes scheint nicht richtig zu sein. Im Controller erstellen Sie einen LoggedUser, ohne jedoch Eigenschaften festzulegen, und übergeben dieses Objekt dann an den GetLoggedUser. Der Wert von user_name wird dann zum Durchsuchen der Datenbank verwendet, hat aber einen beliebigen Wert, wenn Sie GetLoggedUser aufrufen? – Steve