summaryrefslogtreecommitdiffstats
path: root/samples/RelyingPartyMvc/Controllers/UserController.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2008-04-13 09:57:10 -0700
committerAndrew Arnott <andrewarnott@gmail.com>2008-04-15 22:23:43 -0700
commit5cdaee3848421546bf8f3ba0e029df1c283be091 (patch)
treed624f02361ac37e187b818f388651dc553b29dd0 /samples/RelyingPartyMvc/Controllers/UserController.cs
parent03374ffbc284ea9a7eefa02584e4750b8082d066 (diff)
downloadDotNetOpenAuth-5cdaee3848421546bf8f3ba0e029df1c283be091.zip
DotNetOpenAuth-5cdaee3848421546bf8f3ba0e029df1c283be091.tar.gz
DotNetOpenAuth-5cdaee3848421546bf8f3ba0e029df1c283be091.tar.bz2
Added ASP.NET MVC relying party sample.
Diffstat (limited to 'samples/RelyingPartyMvc/Controllers/UserController.cs')
-rw-r--r--samples/RelyingPartyMvc/Controllers/UserController.cs47
1 files changed, 47 insertions, 0 deletions
diff --git a/samples/RelyingPartyMvc/Controllers/UserController.cs b/samples/RelyingPartyMvc/Controllers/UserController.cs
new file mode 100644
index 0000000..991a4bd
--- /dev/null
+++ b/samples/RelyingPartyMvc/Controllers/UserController.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using DotNetOpenId.RelyingParty;
+using System.Web.Security;
+
+namespace RelyingPartyMvc.Controllers {
+ public class UserController : Controller {
+ public void Index() {
+ if (!User.Identity.IsAuthenticated) Response.Redirect("/User/Login?ReturnUrl=Index");
+ RenderView("Index");
+ }
+ public void Logout() {
+ FormsAuthentication.SignOut();
+ Response.Redirect("/Home");
+ }
+
+ public void Login() {
+ // Stage 1: display login form to user
+ RenderView("Login");
+ }
+ public void Authenticate() {
+ var openid = new OpenIdRelyingParty();
+ if (openid.Response == null) {
+ // Stage 2: user submitting Identifier
+ openid.CreateRequest(Request.Form["openid_identifier"]).RedirectToProvider();
+ } else {
+ // Stage 3: OpenID Provider sending assertion response
+ switch (openid.Response.Status) {
+ case AuthenticationStatus.Authenticated:
+ FormsAuthentication.RedirectFromLoginPage(openid.Response.ClaimedIdentifier, false);
+ break;
+ case AuthenticationStatus.Canceled:
+ ViewData["Message"] = "Canceled at provider";
+ RenderView("Login");
+ break;
+ case AuthenticationStatus.Failed:
+ ViewData["Message"] = openid.Response.Exception.Message;
+ RenderView("Login");
+ break;
+ }
+ }
+ }
+ }
+}