summaryrefslogtreecommitdiffstats
path: root/projecttemplates/MvcRelyingParty/Controllers/AccountController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'projecttemplates/MvcRelyingParty/Controllers/AccountController.cs')
-rw-r--r--projecttemplates/MvcRelyingParty/Controllers/AccountController.cs32
1 files changed, 29 insertions, 3 deletions
diff --git a/projecttemplates/MvcRelyingParty/Controllers/AccountController.cs b/projecttemplates/MvcRelyingParty/Controllers/AccountController.cs
index a322f7d..3d3e1aa 100644
--- a/projecttemplates/MvcRelyingParty/Controllers/AccountController.cs
+++ b/projecttemplates/MvcRelyingParty/Controllers/AccountController.cs
@@ -1,4 +1,6 @@
-namespace MvcRelyingParty.Controllers {
+using MvcRelyingParty.Code;
+
+namespace MvcRelyingParty.Controllers {
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -20,7 +22,7 @@
[HandleError]
public class AccountController : Controller {
- [Authorize]
+ [OAuthAuthorize]
public ActionResult Edit() {
return View(GetAccountInfoModel());
}
@@ -35,7 +37,7 @@
/// <remarks>
/// This action accepts PUT because this operation is idempotent in nature.
/// </remarks>
- [Authorize, AcceptVerbs(HttpVerbs.Put), ValidateAntiForgeryToken]
+ [OAuthAuthorize, AcceptVerbs(HttpVerbs.Put), ValidateAntiForgeryToken]
public ActionResult Update(string firstName, string lastName, string emailAddress) {
Database.LoggedInUser.FirstName = firstName;
Database.LoggedInUser.LastName = lastName;
@@ -49,6 +51,9 @@
}
[Authorize]
+ [OAuthUserAuthorizationEndpoint]
+ [ActionName("authorize")]
+ [AcceptVerbs(HttpVerbs.Get)]
public ActionResult Authorize() {
if (OAuthServiceProvider.PendingAuthorizationRequest == null) {
return RedirectToAction("Edit");
@@ -111,6 +116,27 @@
return PartialView("AuthorizedApps", GetAccountInfoModel());
}
+ [OAuthRequestTokenEndpoint]
+ [AcceptVerbs(HttpVerbs.Post)]
+ [ActionName("request_token")]
+ public ActionResult GetRequestToken()
+ {
+ var serviceProvider = OAuthServiceProvider.ServiceProvider;
+ var requestMessage = serviceProvider.ReadTokenRequest();
+ var response = serviceProvider.PrepareUnauthorizedTokenMessage(requestMessage);
+ return serviceProvider.Channel.PrepareResponse(response).AsActionResult();
+ }
+
+ [OAuthAccessTokenEndpoint]
+ [ActionName("access_token")]
+ [AcceptVerbs(HttpVerbs.Post)]
+ public ActionResult GetAccessToken() {
+ var serviceProvider = OAuthServiceProvider.ServiceProvider;
+ var requestMessage = serviceProvider.ReadAccessTokenRequest();
+ var response = serviceProvider.PrepareAccessTokenMessage(requestMessage);
+ return serviceProvider.Channel.PrepareResponse(response).AsActionResult();
+ }
+
private static AccountInfoModel GetAccountInfoModel() {
var authorizedApps = from token in Database.DataContext.IssuedTokens.OfType<IssuedAccessToken>()
where token.User.UserId == Database.LoggedInUser.UserId