24 messaggi dal 16 giugno 2008
Ciao a tutti,
ho implementato a partire dal template di VS2010 un'applicazione business con una custom authentication.
Ho fatto in modo che se l'autente non è autenticato all'ingresso sulla home venga visualizzato una child window per l'autenticazione.
Ho inoltre creato una pagina di test che verifica se l'utente è autenticato, altrimenti viene reindirizzato sulla home per il login.
Tutto funziona bene tranne per il fatto che utilizzando lo stesso reindirizzamento al momento del logout (dalla pagina di test per esempio) mi appaiono due child window per il login sulla home.
Facendo debug ho scoperto che il problema sta nel fatto che nella classe loginstatus il gestore dell'evento logout intercetta due volte l'evento e di conseguenza esegue due redirect(con duplicazione della form di autenticazione).
Volevo chiedervi se questo è normale e se c'è un modo per evitare il doppio redirect.

P.s. ho anche spostato la gestione dell'evento logout sulla mainpage, ma il risultato è sempre il doppio evento.

Grazie a tutti.
Modificato da amathos il 12 maggio 2011 18.11 -
Questo è davvero strano... potresti postare il codice o la solution?

MCTS: Silverlight 4, Development
24 messaggi dal 16 giugno 2008
Il punto saliente è questo nel loginstatus:

private void Authentication_LoggedOut(object sender, AuthenticationEventArgs e)
{

this.UpdateLoginState();
((MainPage) ((BusyIndicator) App.Current.RootVisual).Content).ContentFrame.Navigate(new System.Uri ("/HOME",System.UriKind .Relative))


}

Mentre la Home è:

public partial class Home : Page
{
/// <summary>
/// Creates a new <see cref="Home"/> instance.
/// </summary>
public Home()
{
InitializeComponent();



this.Title = ApplicationStrings.HomePageTitle;



}

/// <summary>
/// Executes when the user navigates to this page.
/// </summary>
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (WebContext.Current.User.IsAuthenticated == false)
{
// ((LoginStatus)this.loginContainer.Child).LoginButton_Click(this, new RoutedEventArgs());
LoginRegistrationWindow login = new LoginRegistrationWindow();
login.Show();

}
}
}

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.