diff options
Diffstat (limited to 'samples/OAuthServiceProvider/Members')
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> |