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".

lien vers l'image

Est-il une autre méthode pour comparer une variable de session à une chaîne

Comment voulez-vous dire c'est d'être ignoré? Cela se passe dans le else? C'est probablement un casting question. Essayez de l'Objet.ReferenceEquals(a,b) ou "Administrateur".Equals(Session["..."])
Utiliser un fournisseur d'appartenances à la place.

OriginalL'auteur drinu16 | 2012-05-21