diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2009-04-26 14:52:19 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2009-04-26 14:52:19 -0700 |
commit | 478bac96d7c00ed333a19021bbe6115dea865ba1 (patch) | |
tree | 82675bd8b562a1b8745430aab40d788fd9638cd3 /samples/OpenIdOfflineProvider/MainWindow.xaml.cs | |
parent | 6b9e91cc059a489eb5c593d57b72156ecef8d0e3 (diff) | |
download | DotNetOpenAuth-478bac96d7c00ed333a19021bbe6115dea865ba1.zip DotNetOpenAuth-478bac96d7c00ed333a19021bbe6115dea865ba1.tar.gz DotNetOpenAuth-478bac96d7c00ed333a19021bbe6115dea865ba1.tar.bz2 |
The auto-respond vs. intercept setting for checkid messages works now.
Diffstat (limited to 'samples/OpenIdOfflineProvider/MainWindow.xaml.cs')
-rw-r--r-- | samples/OpenIdOfflineProvider/MainWindow.xaml.cs | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/samples/OpenIdOfflineProvider/MainWindow.xaml.cs b/samples/OpenIdOfflineProvider/MainWindow.xaml.cs index bd4f0a0..6018c20 100644 --- a/samples/OpenIdOfflineProvider/MainWindow.xaml.cs +++ b/samples/OpenIdOfflineProvider/MainWindow.xaml.cs @@ -23,6 +23,8 @@ namespace DotNetOpenAuth.OpenIdOfflineProvider { using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; + using DotNetOpenAuth.Messaging; + using DotNetOpenAuth.OpenId.Provider; using log4net; using log4net.Appender; using log4net.Core; @@ -46,7 +48,7 @@ namespace DotNetOpenAuth.OpenIdOfflineProvider { /// </summary> public MainWindow() { this.InitializeComponent(); - this.hostedProvider.ProcessAuthenticationRequest = request => CheckIdWindow.ProcessAuthentication(this.hostedProvider, request); + this.hostedProvider.ProcessRequest = this.ProcessRequest; TextWriterAppender boxLogger = log4net.LogManager.GetRepository().GetAppenders().OfType<TextWriterAppender>().FirstOrDefault(a => a.Name == "TextBoxAppender"); if (boxLogger != null) { boxLogger.Writer = new TextBoxTextWriter(logBox); @@ -91,6 +93,34 @@ namespace DotNetOpenAuth.OpenIdOfflineProvider { } /// <summary> + /// Processes an incoming request at the OpenID Provider endpoint. + /// </summary> + /// <param name="requestInfo">The request info.</param> + /// <param name="response">The response.</param> + private void ProcessRequest(HttpRequestInfo requestInfo, HttpListenerResponse response) { + IRequest request = this.hostedProvider.Provider.GetRequest(requestInfo); + if (request == null) { + App.Logger.Error("A request came in that did not carry an OpenID message."); + response.StatusCode = (int)HttpStatusCode.BadRequest; + using (StreamWriter sw = new StreamWriter(response.OutputStream)) { + sw.WriteLine("<html><body>This is an OpenID Provider endpoint.</body></html>"); + } + return; + } + + this.Dispatcher.Invoke((Action)delegate { + if (!request.IsResponseReady) { + var authRequest = request as IAuthenticationRequest; + if (authRequest != null) { + CheckIdWindow.ProcessAuthentication(this.hostedProvider, authRequest, checkidRequestList.SelectedIndex == 0); + } + } + }); + + this.hostedProvider.Provider.PrepareResponse(request).Send(response); + } + + /// <summary> /// Starts the provider. /// </summary> private void startProvider() { |