|
namespace RIADataServicesDemoApp.LoginUI
{
using System.Globalization;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Ria.ApplicationServices;
using RIADataServicesDemoApp.LoginUI;
using RIADataServicesDemoApp.Resources;
public partial class LoginStatus : UserControl
{
private readonly AuthenticationService authService = WebContext.Current.Authentication;
public LoginStatus()
{
this.InitializeComponent();
this.welcomeText.SetBinding(TextBlock.TextProperty, WebContext.Current.CreateOneWayBinding("User.DisplayName", new StringFormatValueConverter(ApplicationStrings.WelcomeMessage)));
this.authService.LoggedIn += this.Authentication_LoggedIn;
this.authService.LoggedOut += this.Authentication_LoggedOut;
this.UpdateLoginState();
}
private void LoginButton_Click(object sender, RoutedEventArgs e)
{
LoginRegistrationWindow loginWindow = new LoginRegistrationWindow();
loginWindow.Show();
}
private void LogoutButton_Click(object sender, RoutedEventArgs e)
{
this.authService.Logout(logoutOperation =>
{
if (logoutOperation.HasError)
{
ErrorWindow.CreateNew(logoutOperation.Error);
logoutOperation.MarkErrorAsHandled();
}
}, /* userState */ null);
}
private void Authentication_LoggedIn(object sender, AuthenticationEventArgs e)
{
this.UpdateLoginState();
}
private void Authentication_LoggedOut(object sender, AuthenticationEventArgs e)
{
this.UpdateLoginState();
}
private void UpdateLoginState()
{
if (WebContext.Current.User.IsAuthenticated)
{
VisualStateManager.GoToState(this, (WebContext.Current.Authentication is WindowsAuthentication) ? "windowsAuth" : "loggedIn", true);
}
else
{
VisualStateManager.GoToState(this, "loggedOut", true);
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I currently hold the following qualifications (amongst others, I also studied Music Technology and Electronics, for my sins)
- MSc (Passed with distinctions), in Information Technology for E-Commerce
- BSc Hons (1st class) in Computer Science & Artificial Intelligence
Both of these at Sussex University UK.
Award(s)
I am lucky enough to have won a few awards for Zany Crazy code articles over the years
- Microsoft C# MVP 2016
- Codeproject MVP 2016
- Microsoft C# MVP 2015
- Codeproject MVP 2015
- Microsoft C# MVP 2014
- Codeproject MVP 2014
- Microsoft C# MVP 2013
- Codeproject MVP 2013
- Microsoft C# MVP 2012
- Codeproject MVP 2012
- Microsoft C# MVP 2011
- Codeproject MVP 2011
- Microsoft C# MVP 2010
- Codeproject MVP 2010
- Microsoft C# MVP 2009
- Codeproject MVP 2009
- Microsoft C# MVP 2008
- Codeproject MVP 2008
- And numerous codeproject awards which you can see over at my blog