none
Login RRS feed

  • Pergunta

  • Bom dia a Todos, tenho um metodo na MainPage que carrega meus menus. Gostaria de fazer com que ele so executasse depois do login. Como devo fazer isso?

      public void CarregarMenu()
        {
    
          //Verifica se o Usuário Está Conectado.
          if (WebContext.Current.User.IsAuthenticated)
          {
            var menus = context.Load(context.GetMenuQuery());
            treeView1.ItemsSource = menus.Entities;
            treeView1.LoadOnDemand += treeView1_LoadOnDemand;
            treeView1.ItemPrepared += treeView1_ItemPrepared;
          }
        }
    
    Obrigado.

    terça-feira, 24 de maio de 2011 12:42

Respostas

  • public partial class MainPage : UserControl

    {

     private readonly AuthenticationService authService = WebContext.Current.Authentication;

     private void btnAutenticar_Click(object sender, RoutedEventArgs e)

    {

    string usuario = txtboxUsuario.Text;

            string senha = txtboxSenha.Password;

            LoginOperation loginOperation = WebContext.Current.Authentication.Login(usuario, senha);

            loginOperation.Completed     += new EventHandler(loginOperation_Completed);

    }

    private void loginOperation_Completed(object sender, EventArgs e)

    {

    LoginOperation op = sender as LoginOperation;

            try

            {

            if (!op.LoginSuccess)

                    {

                        ErrorWindow.CreateNew(op.Error);

                        op.MarkErrorAsHandled();

                    }

                    else 

      {

    CarregarMenu(); // Seu método

      }

             }

             catch (Exception)

             {

              MessageBox.Show("Erro no Login");

             }

    }

    }

     

    http://blogs.msdn.com/b/kylemc/archive/2010/05/03/authorization-sample-101.aspx Da uma olhada nesse link depois, pode ser util.

     


    terça-feira, 24 de maio de 2011 18:57

Todas as Respostas

  • public partial class MainPage : UserControl

    {

     private readonly AuthenticationService authService = WebContext.Current.Authentication;

     private void btnAutenticar_Click(object sender, RoutedEventArgs e)

    {

    string usuario = txtboxUsuario.Text;

            string senha = txtboxSenha.Password;

            LoginOperation loginOperation = WebContext.Current.Authentication.Login(usuario, senha);

            loginOperation.Completed     += new EventHandler(loginOperation_Completed);

    }

    private void loginOperation_Completed(object sender, EventArgs e)

    {

    LoginOperation op = sender as LoginOperation;

            try

            {

            if (!op.LoginSuccess)

                    {

                        ErrorWindow.CreateNew(op.Error);

                        op.MarkErrorAsHandled();

                    }

                    else 

      {

    CarregarMenu(); // Seu método

      }

             }

             catch (Exception)

             {

              MessageBox.Show("Erro no Login");

             }

    }

    }

     

    http://blogs.msdn.com/b/kylemc/archive/2010/05/03/authorization-sample-101.aspx Da uma olhada nesse link depois, pode ser util.

     


    terça-feira, 24 de maio de 2011 18:57
  • Obrigado pela Ajuda.

    Pode ser Assim também.

     public MainPage()
        {
          InitializeComponent();
          this.loginContainer.Child = new LoginStatus();
          
    
          this.dockPnl.Visibility = System.Windows.Visibility.Collapsed;
    
          //Carlos, aqui verifico se o usuário está logado.
          WebContext.Current.Authentication.LoggedIn += (se, ev) =>
            {
              if (dockPnl.Visibility == System.Windows.Visibility.Collapsed)
              {
                dockPnl.Visibility = System.Windows.Visibility.Visible;
                
              }
              this.CarregarMenu();
              
            };
    
          WebContext.Current.Authentication.LoggedOut += (se, ev) =>
          {
            this.dockPnl.Visibility = System.Windows.Visibility.Collapsed;
            tabAcoes.Items.Clear();
          };
        }
    
    
    terça-feira, 24 de maio de 2011 19:26
  • Obrigado pela Ajuda.

    Pode ser Assim também.

     public MainPage()
    
      {
    
       InitializeComponent();
    
       this.loginContainer.Child = new LoginStatus();
    
       
    
    
    
       this.dockPnl.Visibility = System.Windows.Visibility.Collapsed;
    
    
    
       //Carlos, aqui verifico se o usuário está logado.
    
       WebContext.Current.Authentication.LoggedIn += (se, ev) =>
    
        {
    
         if (dockPnl.Visibility == System.Windows.Visibility.Collapsed)
    
         {
    
          dockPnl.Visibility = System.Windows.Visibility.Visible;
    
          
    
         }
    
         this.CarregarMenu();
    
         
    
        };
    
    
    
       WebContext.Current.Authentication.LoggedOut += (se, ev) =>
    
       {
    
        this.dockPnl.Visibility = System.Windows.Visibility.Collapsed;
    
        tabAcoes.Items.Clear();
    
       };
    
      }
    
    
    
    


    Boa noite Jether

    Esta linha "this.loginContainer.Child = new LoginForm()" está gerando um erro. Este "loginContainer" deve ser adicionado ao projeto? Estou começando agora com Silverligth.

     

    terça-feira, 24 de maio de 2011 21:04
  • o 'this.' se refere a class atual, no casso a MainPage, ele referencia assim porque quando você cria seu projeto do tipo Business Template, na MainPage, logo abaixo do cabeçalho tem um Rectangle com o nome loginContainer.
    terça-feira, 24 de maio de 2011 23:14
  • Você não precisa necessariamente ter está linha.
    quarta-feira, 25 de maio de 2011 14:20