summaryrefslogtreecommitdiffstats
path: root/samples/OAuthServiceProvider/Members
diff options
context:
space:
mode:
Diffstat (limited to 'samples/OAuthServiceProvider/Members')
-rw-r--r--samples/OAuthServiceProvider/Members/Authorize.aspx32
-rw-r--r--samples/OAuthServiceProvider/Members/Authorize.aspx.cs43
-rw-r--r--samples/OAuthServiceProvider/Members/AuthorizedConsumers.aspx7
-rw-r--r--samples/OAuthServiceProvider/Members/AuthorizedConsumers.aspx.cs15
-rw-r--r--samples/OAuthServiceProvider/Members/Logoff.aspx8
-rw-r--r--samples/OAuthServiceProvider/Members/Web.config8
6 files changed, 113 insertions, 0 deletions
diff --git a/samples/OAuthServiceProvider/Members/Authorize.aspx b/samples/OAuthServiceProvider/Members/Authorize.aspx
new file mode 100644
index 0000000..0fd272c
--- /dev/null
+++ b/samples/OAuthServiceProvider/Members/Authorize.aspx
@@ -0,0 +1,32 @@
+<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
+ CodeFile="Authorize.aspx.cs" Inherits="Authorize" %>
+
+<asp:Content ID="Content2" ContentPlaceHolderID="Body" runat="Server">
+ <asp:MultiView runat="server" ActiveViewIndex="0" ID="multiView">
+ <asp:View runat="server">
+ <div style="background-color: Yellow">
+ <b>Warning</b>: Never give your login credentials to another web site or application.
+ </div>
+ <p>The client web site or application
+ <asp:Label ID="consumerLabel" Font-Bold="true" runat="server" Text="[consumer]" />
+ wants access to your
+ <asp:Label ID="desiredAccessLabel" Font-Bold="true" runat="server" Text="[protected resource]" />.
+ </p>
+ <p>Do you want to allow this? </p>
+ <div>
+ <asp:Button ID="allowAccessButton" runat="server" Text="Yes" OnClick="allowAccessButton_Click" />
+ <asp:Button ID="denyAccessButton" runat="server" Text="No"
+ onclick="denyAccessButton_Click" />
+ </div>
+ <p>If you grant access now, you can revoke it at any time by returning to this page.
+ </p>
+ </asp:View>
+ <asp:View runat="server">
+ <p>Authorization has been granted. Please inform the consumer application or web site
+ of this. </p>
+ </asp:View>
+ <asp:View runat="server">
+ <p>Authorization has been denied. You're free to do whatever now. </p>
+ </asp:View>
+ </asp:MultiView>
+</asp:Content>
diff --git a/samples/OAuthServiceProvider/Members/Authorize.aspx.cs b/samples/OAuthServiceProvider/Members/Authorize.aspx.cs
new file mode 100644
index 0000000..76eec26
--- /dev/null
+++ b/samples/OAuthServiceProvider/Members/Authorize.aspx.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using DotNetOpenAuth;
+using DotNetOpenAuth.OAuth;
+using DotNetOpenAuth.OAuth.Messages;
+
+/// <summary>
+/// Conducts the user through a Consumer authorization process.
+/// </summary>
+public partial class Authorize : System.Web.UI.Page {
+ protected void Page_Load(object sender, EventArgs e) {
+ if (!IsPostBack) {
+ if (Global.PendingOAuthAuthorization == null) {
+ Response.Redirect("~/Members/AuthorizedConsumers.aspx");
+ } else {
+ ITokenContainingMessage pendingToken = Global.PendingOAuthAuthorization;
+ var token = Global.DataContext.OAuthTokens.Single(t => t.Token == pendingToken.Token);
+ desiredAccessLabel.Text = token.Scope;
+ }
+ }
+ }
+
+ protected void allowAccessButton_Click(object sender, EventArgs e) {
+ var pending = Global.PendingOAuthAuthorization;
+ Global.AuthorizePendingRequestToken();
+ multiView.ActiveViewIndex = 1;
+
+ ServiceProvider sp = new ServiceProvider(Constants.SelfDescription, Global.TokenManager);
+ var response = sp.PrepareAuthorizationResponse(pending);
+ if (response != null) {
+ sp.Channel.Send(response);
+ }
+ }
+
+ protected void denyAccessButton_Click(object sender, EventArgs e) {
+ // erase the request token.
+ multiView.ActiveViewIndex = 2;
+ }
+}
diff --git a/samples/OAuthServiceProvider/Members/AuthorizedConsumers.aspx b/samples/OAuthServiceProvider/Members/AuthorizedConsumers.aspx
new file mode 100644
index 0000000..d6ea668
--- /dev/null
+++ b/samples/OAuthServiceProvider/Members/AuthorizedConsumers.aspx
@@ -0,0 +1,7 @@
+<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
+ CodeFile="AuthorizedConsumers.aspx.cs" Inherits="AuthorizedConsumers" %>
+
+<asp:Content ID="Content2" ContentPlaceHolderID="Body" runat="Server">
+ <h2>The following consumers have access to your data</h2>
+ <p>TODO</p>
+</asp:Content>
diff --git a/samples/OAuthServiceProvider/Members/AuthorizedConsumers.aspx.cs b/samples/OAuthServiceProvider/Members/AuthorizedConsumers.aspx.cs
new file mode 100644
index 0000000..e7af629
--- /dev/null
+++ b/samples/OAuthServiceProvider/Members/AuthorizedConsumers.aspx.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+/// <summary>
+/// Lists the consumers that have active request or access tokens
+/// and provides a mechanism for the user to revoke permissions.
+/// </summary>
+public partial class AuthorizedConsumers : System.Web.UI.Page {
+ protected void Page_Load(object sender, EventArgs e) {
+ }
+}
diff --git a/samples/OAuthServiceProvider/Members/Logoff.aspx b/samples/OAuthServiceProvider/Members/Logoff.aspx
new file mode 100644
index 0000000..afa9dd9
--- /dev/null
+++ b/samples/OAuthServiceProvider/Members/Logoff.aspx
@@ -0,0 +1,8 @@
+<%@ Page Title="Log off" Language="C#" MasterPageFile="~/MasterPage.master" %>
+
+<script runat="server">
+ private void Page_Load(object sender, EventArgs e) {
+ FormsAuthentication.SignOut();
+ Response.Redirect("~/");
+ }
+</script>
diff --git a/samples/OAuthServiceProvider/Members/Web.config b/samples/OAuthServiceProvider/Members/Web.config
new file mode 100644
index 0000000..50fab27
--- /dev/null
+++ b/samples/OAuthServiceProvider/Members/Web.config
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<configuration>
+ <system.web>
+ <authorization>
+ <deny users="?"/>
+ </authorization>
+ </system.web>
+</configuration>