// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Authentication.OpenIdConnect; using Microsoft.AspNetCore.Mvc; namespace Identity.OpenIdConnect.WebSite.Controllers { public class AccountController : Controller { // // GET: /Account/SignIn [HttpGet] public IActionResult SignIn() { return Challenge( new AuthenticationProperties { RedirectUri = "/" }, OpenIdConnectDefaults.AuthenticationScheme); } [HttpGet] public IActionResult Manage() { return RedirectToAction("Index", "Manage", new { area = "IdentityService" }); } // // GET: /Account/SignOut [HttpGet] public IActionResult SignOut() { var callbackUrl = Url.Action(nameof(SignedOut), "Account", values: null, protocol: Request.Scheme); return SignOut(new AuthenticationProperties { RedirectUri = callbackUrl }, CookieAuthenticationDefaults.AuthenticationScheme, OpenIdConnectDefaults.AuthenticationScheme); } // // GET: /Account/SignedOut [HttpGet] public IActionResult SignedOut() { if (HttpContext.User.Identity.IsAuthenticated) { // Redirect to home page if the user is authenticated. return RedirectToAction(nameof(HomeController.Index), "Home"); } return View(); } // // GET: /Account/AccessDenied [HttpGet] public IActionResult AccessDenied() { return View(); } } }