I am trying to pass values from a database table to a couple of labels where the email column matches the email entered.I have passed the email entered from login page to th
Other answers have already answered your initial problem regarding @Email.
Since you are using FormsAuthentication, you should not save Email in Session state. (Normally, FormsAuthentication uses username, but email address is ok since you are retrieving user information by email address.)
It defeats the purpose of using FormsAuthentication, because it already saves the Email in FormsAuthenticationTicket.
protected void btnLogin_Click(object sender, EventArgs e)
{
if (AuthenticateUser(txtEmail.Text, txtPassword.Text))
{
// Thus all you need
FormsAuthentication.RedirectFromLoginPage(username, true);
}
}
You need this in order to retrieve the Email from cookie, and save the email in IPrincipal Object.
public class Global : HttpApplication
{
private void Application_AuthenticateRequest(object sender, EventArgs e)
{
HttpCookie decryptedCookie =
Context.Request.Cookies[FormsAuthentication.FormsCookieName];
FormsAuthenticationTicket ticket =
FormsAuthentication.Decrypt(decryptedCookie.Value);
var identity = new GenericIdentity(ticket.Name);
var principal = new GenericPrincipal(identity, null);
HttpContext.Current.User = principal;
Thread.CurrentPrincipal = HttpContext.Current.User;
}
}
protected void Page_Load(object sender, EventArgs e)
{
var email = User.Identity.Name;
}
More information here.