none
if(!condicao) { executa }; Não funciona RRS feed

  • Pergunta

  • Olá.
    Estou com um problema ao negar uma condição.
    Pelo que eu sei, ! é para negar.
    Quero negar acesso para todos os funcionários que não sejam fulano e beltrano.

    protected void Page_Load(object sender, EventArgs e)
            {
                if (
                    (!HttpContext.Current.User.Identity.Name.Contains("fulano.tal") |
                     !HttpContext.Current.User.Identity.Name.Contains("joseda.silva") |
                     !HttpContext.Current.User.Identity.Name.Contains("ze.maria"))
                    )
                {
                    Response.Redirect("AcessoNegado.aspx");
                }
            }
    O contrario funciona, mas ai eu irei ter que colocar todos os funcionários, o que não seria o correto.
    Obrigado a todos.
    quinta-feira, 3 de outubro de 2013 12:55

Respostas

  • Se não tiver o nome silvia.sauro E jose.dascouves E eu.mesmo então nega o acesso!

    protected void Page_Load(object sender, EventArgs e)
            {
                if (
                    !(HttpContext.Current.User.Identity.Name.Contains("silvia.sauro")) &&
                    !(HttpContext.Current.User.Identity.Name.Contains("jose.dascouves")) &&
                    !(HttpContext.Current.User.Identity.Name.Contains("eu.mesmo"))
                    )
                {
                    Response.Redirect("AcessoNegado.aspx");
                }
            }

    quinta-feira, 3 de outubro de 2013 13:25

Todas as Respostas

  • protected void Page_Load(object sender, EventArgs e)
            {
                if (
                    (!HttpContext.Current.User.Identity.Name.Contains("fulano.tal") ||
                     !HttpContext.Current.User.Identity.Name.Contains("joseda.silva") ||
                     !HttpContext.Current.User.Identity.Name.Contains("ze.maria"))
                    )
                {
                    Response.Redirect("AcessoNegado.aspx");
                }
            }

    Acho eu que faltou o || em vez de | apenas. da uma olhada.


    Rafael Boschini

    quinta-feira, 3 de outubro de 2013 13:05
  • Obrigado Rafael, mas eu já tinha feito dessa forma.
    http://msdn.microsoft.com/pt-br/library/vstudio/ms173145.aspx

    Eu acabei postando o exemplo errado.
    Também coloquei o "!" para fora do parentes.

    protected void Page_Load(object sender, EventArgs e)
            {
                if (
                    !(HttpContext.Current.User.Identity.Name.Contains("silvia.sauro")) ||
                     !(HttpContext.Current.User.Identity.Name.Contains("jose.dascouves")) ||
                     !(HttpContext.Current.User.Identity.Name.Contains("eu.mesmo"))
                    )
                {
                    Response.Redirect("AcessoNegado.aspx");
                }
            }




    • Editado Fabrício MD quinta-feira, 3 de outubro de 2013 13:16
    quinta-feira, 3 de outubro de 2013 13:15
  • Já tentou trocar o Contains por Equals?

    O Contains está retornando o valor lógico correto?


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    quinta-feira, 3 de outubro de 2013 13:22
  • Se não tiver o nome silvia.sauro E jose.dascouves E eu.mesmo então nega o acesso!

    protected void Page_Load(object sender, EventArgs e)
            {
                if (
                    !(HttpContext.Current.User.Identity.Name.Contains("silvia.sauro")) &&
                    !(HttpContext.Current.User.Identity.Name.Contains("jose.dascouves")) &&
                    !(HttpContext.Current.User.Identity.Name.Contains("eu.mesmo"))
                    )
                {
                    Response.Redirect("AcessoNegado.aspx");
                }
            }

    quinta-feira, 3 de outubro de 2013 13:25
  • Obrigado Senhores.

    Funcionou usando o &&.
    Tanto o Equal quanto o Contains estava retornando Domino\\nome.sobrenome

    Obrigado a todos.

    quinta-feira, 3 de outubro de 2013 13:32