summaryrefslogtreecommitdiffstats
path: root/samples/OpenIdOfflineProvider/MainWindow.xaml.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2009-04-26 14:52:19 -0700
committerAndrew Arnott <andrewarnott@gmail.com>2009-04-26 14:52:19 -0700
commit478bac96d7c00ed333a19021bbe6115dea865ba1 (patch)
tree82675bd8b562a1b8745430aab40d788fd9638cd3 /samples/OpenIdOfflineProvider/MainWindow.xaml.cs
parent6b9e91cc059a489eb5c593d57b72156ecef8d0e3 (diff)
downloadDotNetOpenAuth-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.cs32
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() {