en comparant variable de session de la valeur à une chaîne
Je compare la variable de session à une chaîne pour vérifier si la connexion est de type administrateur ou non.
Code j'utilise :
if (Session["loggedInUsername"] == null)
{
btnLogin.Text = "Sign In";
lblWelcome.Text = "Welcome!";
hypManageRestaurants.Enabled = false;
hypManageReviews.Enabled = false;
hypPostReviews.Enabled = false;
}
else
{
if (Session["loggedInUserType"] == "Administrator")
{
hypManageRestaurants.Enabled = true;
hypManageReviews.Enabled = true;
hypPostReviews.Enabled = true;
}
else
{
hypManageRestaurants.Enabled = false;
hypManageReviews.Enabled = false;
hypPostReviews.Enabled = true;
}
lblWelcome.Text = "Welcome " + Session["loggedInUsername"];
btnLogin.Text = "Sign Out";
}
Alors d'abord je suis de vérifier si un utilisateur est connecté ou non. Si l'utilisateur se connecte avec succès, la variable de session "loggedInUsername" aura la valeur d'un nom d'utilisateur. Si le "loggedInUsername" variable de session n'est pas vide, il coche la case "loggedInUserType" variable de session pour le type de l'utilisateur connecté.
Voici la chose étrange, la valeur de la "loggedInUserType", c'est exactement "Administrateur" sans les "", à la fonction si lorsque je compare la variable de session à la chaîne "Administrateur" est ignoré et va à l'autre.
Toutes les variables de session sont l'obtention de valeurs lorsque l'utilisateur se connecte.
Ci-dessous les données qui je suis en utilisant le login et cet album, c'est la seule trace qui ont un type de "Administrateur".
Est-il une autre méthode pour comparer une variable de session à une chaîne
Utiliser un fournisseur d'appartenances à la place.
OriginalL'auteur drinu16 | 2012-05-21
Vous devez vous connecter pour publier un commentaire.
Cast le type d'objet de valeur à une chaîne de
OriginalL'auteur Jaimal Chohan
Essayer
if(Convert.ToString(Session["loggedInUserType"]) == "Administrator) ...
OriginalL'auteur Carl Winder
Essayez ceci:
OriginalL'auteur Marco
Êtes-vous sûr que tous les espaces a été coupé à partir de la fin de la Session["loggedInUserType"]?
OriginalL'auteur Dave Lawrence
OriginalL'auteur daryal
La
Session
collection renvoie des valeurs de typeObject
, de sorte que lorsque vous comparez cela à une chaîne, vous serez en comparant les valeurs des références d'objet, pas de comparer les valeurs de chaîne.Fonte de la référence de l'objet à
string
:OriginalL'auteur Guffa
Vous pouvez faire ceci :
ou votre
Session
peut être dans une classe avec des getters.OriginalL'auteur SarahB
De cette façon, pas besoin de vérifier la valeur null parce que Convertir.ToString gérer la valeur Null return "" chaîne vide
OriginalL'auteur Kashif Faraz