Ich habe zwei Seiten genannt Login.aspx
und Home.aspx
Anmeldung Fehlermeldung Objektreferenz
AKTUALISIERT Code:
protected void Button1_Click(object sender, EventArgs e)
{
if (loginmethod(txt_us.Text, txt_pwd.Text) != "NA")
{
FormsAuthentication.Initialize();
String strRole = Assignroles(txt_us.Text);
FormsAuthenticationTicket fat = new FormsAuthenticationTicket(1, txt_us.Text, DateTime.Now, DateTime.Now.AddMinutes(30), false, strRole, FormsAuthentication.FormsCookiePath);
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName,
FormsAuthentication.Encrypt(fat)));
loginmethod(txt_us.Text, txt_pwd.Text);
Response.Redirect("home.aspx");
}
else if (Session["ID"] != null)
{
u = Session["ID"].ToString();
}
else
{
Label1.Text = ("Incorrect UserName/Password");
Label1.Visible = true;
Response.Redirect("home.aspx");
}
txt_us.Text = "";
txt_pwd.Text = "";
}
private string loginmethod(string UserName, string Password)
{
try
{
login_class lg_class = new login_class();
Entities login = new Entities();
string logn = Convert.ToString(lg_class.loginfunction(UserName, Password).Rows[0]["id"]);
Session["ID"] = logn.ToString();
return (logn);
}
catch (Exception ex)
{
return (ex.Message.ToString());
}
}
private string Assignroles(string username)
{
if ((txt_us.Text != string.Empty) && (txt_pwd.Text != string.Empty))
return "";
else
return string.Empty;
}
public DataTable loginfunction(string username, string password)
{
try
{
Entities lg = new Entities();
List<SP_GetLogin_Result> gr = lg.SP_GetLogin(username, password).ToList();
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(string));
foreach (var l in gr)
{
dt.Rows.Add(l.id);
}
return dt;
}
catch (Exception)
{
throw new Exception();
}
}
Und auf home.aspx
Seite zu laden:
string id;
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
id = Session["ID"].ToString();
this.FFID = "All";
vehcileinfo(id);
}
}
SP_GetLogin
Rückkehr ID dh wenn i eingeben Benutzername abc
und pssword 1224
dann diese Rückkehr ID CU-2343
, wenn ich mit korrekten Benutzernamen und Passwort eingeben dann umleiten, dies zu home.aspx
Aber wenn ich falsch Benutzername oder Passwort eingeben, dann zeigen diese einen Fehler auf dieser Linie
u = Session["ID"].ToString();
System.NullReferenceException : Objektreferenz wurde nicht auf eine Instanz eines Objekts gesetzt.
und ich möchte auf login.aspx
„falschen Benutzernamen und Passwort“ Fehlermeldung zeigen
Wie ich das tun?
* Objektverweis nicht auf eine Instanz eines Objekts festgelegt. * Es ist zeigt, dass Ihre 'Session [ "ID"]' 'ist NULL' –
Behandle es: 'if (Session [" ID "]! = Null) {u = Session [" ID "]. ToString(); } ' –
ON home.aspx Seite ?? @Div und ja, ich gebe falsch Benutzername und Passwort, weshalb dieser Fehler angezeigt wird, wo, wie ich Nachricht auf Login ASPX, dass inkorrekt Benutzername/Passwort anzeigen möchte .. –