/// <summary>
        /// Initializes a new instance of the <see cref="CheckIdWindow"/> class.
        /// </summary>
        /// <param name="provider">The OpenID Provider host.</param>
        /// <param name="request">The incoming authentication request.</param>
        private CheckIdWindow(HostedProvider provider, IAuthenticationRequest request)
        {
            Contract.Requires(request != null);

            InitializeComponent();

            // Initialize the window with appropriate values.
            this.realmLabel.Content            = request.Realm;
            this.immediateModeLabel.Visibility = request.Immediate ? Visibility.Visible : Visibility.Collapsed;
            this.setupModeLabel.Visibility     = request.Immediate ? Visibility.Collapsed : Visibility.Visible;

            bool isRPDiscoverable = request.IsReturnUrlDiscoverable(provider.Provider) == RelyingPartyDiscoveryResult.Success;

            this.discoverableYesLabel.Visibility = isRPDiscoverable ? Visibility.Visible : Visibility.Collapsed;
            this.discoverableNoLabel.Visibility  = isRPDiscoverable ? Visibility.Collapsed : Visibility.Visible;

            if (request.IsDirectedIdentity)
            {
                this.claimedIdentifierBox.Text = provider.UserIdentityPageBase.AbsoluteUri;
                this.localIdentifierBox.Text   = provider.UserIdentityPageBase.AbsoluteUri;
            }
            else
            {
                this.claimedIdentifierBox.Text = request.ClaimedIdentifier;
                this.localIdentifierBox.Text   = request.LocalIdentifier;
            }
        }
		/// <summary>
		/// Releases unmanaged and - optionally - managed resources
		/// </summary>
		/// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
		protected virtual void Dispose(bool disposing) {
			if (disposing) {
				var host = this.hostedProvider as IDisposable;
				if (host != null) {
					host.Dispose();
				}

				this.hostedProvider = null;
			}
		}
Example #3
0
        /// <summary>
        /// Releases unmanaged and - optionally - managed resources
        /// </summary>
        /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        protected virtual void Dispose(bool disposing)
        {
            if (disposing)
            {
                var host = this.hostedProvider as IDisposable;
                if (host != null)
                {
                    host.Dispose();
                }

                this.hostedProvider = null;
            }
        }
		/// <summary>
		/// Processes an authentication request by a popup window.
		/// </summary>
		/// <param name="provider">The OpenID Provider host.</param>
		/// <param name="request">The incoming authentication request.</param>
		internal static void ProcessAuthentication(HostedProvider provider, IAuthenticationRequest request) {
			Contract.Requires(provider != null);
			Contract.Requires(request != null);

			var window = new CheckIdWindow(provider, request);
			bool? result = window.ShowDialog();

			// If the user pressed Esc or cancel, just send a negative assertion.
			if (!result.HasValue || !result.Value) {
				request.IsAuthenticated = false;
				return;
			}

			request.IsAuthenticated = window.tabControl1.SelectedItem == window.positiveTab;
			if (request.IsAuthenticated.Value) {
				request.ClaimedIdentifier = window.claimedIdentifierBox.Text;
				request.LocalIdentifier = window.localIdentifierBox.Text;
			}
		}
        /// <summary>
        /// Processes an authentication request by a popup window.
        /// </summary>
        /// <param name="provider">The OpenID Provider host.</param>
        /// <param name="request">The incoming authentication request.</param>
        internal static void ProcessAuthentication(HostedProvider provider, IAuthenticationRequest request)
        {
            Contract.Requires(provider != null);
            Contract.Requires(request != null);

            var  window = new CheckIdWindow(provider, request);
            bool?result = window.ShowDialog();

            // If the user pressed Esc or cancel, just send a negative assertion.
            if (!result.HasValue || !result.Value)
            {
                request.IsAuthenticated = false;
                return;
            }

            request.IsAuthenticated = window.tabControl1.SelectedItem == window.positiveTab;
            if (request.IsAuthenticated.Value)
            {
                request.ClaimedIdentifier = window.claimedIdentifierBox.Text;
                request.LocalIdentifier   = window.localIdentifierBox.Text;
            }
        }
		/// <summary>
		/// Initializes a new instance of the <see cref="CheckIdWindow"/> class.
		/// </summary>
		/// <param name="provider">The OpenID Provider host.</param>
		/// <param name="request">The incoming authentication request.</param>
		private CheckIdWindow(HostedProvider provider, IAuthenticationRequest request) {
			Contract.Requires(request != null);

			this.InitializeComponent();

			// Initialize the window with appropriate values.
			this.realmLabel.Content = request.Realm;
			this.immediateModeLabel.Visibility = request.Immediate ? Visibility.Visible : Visibility.Collapsed;
			this.setupModeLabel.Visibility = request.Immediate ? Visibility.Collapsed : Visibility.Visible;

			bool isRPDiscoverable = request.IsReturnUrlDiscoverable(provider.Provider.Channel.WebRequestHandler) == RelyingPartyDiscoveryResult.Success;
			this.discoverableYesLabel.Visibility = isRPDiscoverable ? Visibility.Visible : Visibility.Collapsed;
			this.discoverableNoLabel.Visibility = isRPDiscoverable ? Visibility.Collapsed : Visibility.Visible;

			if (request.IsDirectedIdentity) {
				this.claimedIdentifierBox.Text = provider.UserIdentityPageBase.AbsoluteUri;
				this.localIdentifierBox.Text = provider.UserIdentityPageBase.AbsoluteUri;
			} else {
				this.claimedIdentifierBox.Text = request.ClaimedIdentifier;
				this.localIdentifierBox.Text = request.LocalIdentifier;
			}
		}