Voici mon code page maître derrière:Qu'est-ce que je fais mal dans ASP.NET
namespace mysite.MasterPages
{
public partial class Main : System.Web.UI.MasterPage
{
public bool isLoggedIn;
protected void Page_Load(object sender, EventArgs e)
{
isLoggedIn = Request.IsAuthenticated; // Is the user currently logged in
}
}
}
Voici mon code page registre derrière:
namespace mysite
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (((MasterPage)Page.Master).isLoggedIn)
{
Response.Redirect("default.aspx");
}
}
}
}
Je suis en train de faire le isLoggedIn accessible à toutes les pages en utilisant cela comme une page maître! Je reçois des erreurs telles que:
Erreur 2 Le nom « isLoggedIn » n'existe pas dans le contexte actuel
Erreur 3 « System.Web.UI.MasterPage » ne contient pas une définition pour « isLoggedIn » et aucune méthode d'extension « isLoggedIn » accepter un premier argument de type « System.Web.UI.MasterPage » n'a pu être trouvée (vous manque une directive à l'aide ou une référence d'assemblage?)
Toute aide appréciée.
Pourquoi ne pas simplement vérifier 'Request.IsAuthenticated' sur les pages qui en ont besoin plutôt que d'attribuer le résultat de' Request.IsAuthenticated' à une autre variable? – CraigTP
Je viens d'un contexte ASP classique, et j'ai toujours assigné des noms de variables plus significatifs à ce genre de choses, et on m'a appris qu'il vaut mieux l'assigner à une variable que de continuer à la demander. –
btw, quel type d'authentification utilisez-vous? formulaires (propre page de connexion) ou de base (fenêtre de connexion par défaut du navigateur)? – abatishchev