61 lines
1.8 KiB
C#
61 lines
1.8 KiB
C#
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 IdentityOIDCWebApplicationSample.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 = "Identity" });
|
|
}
|
|
//
|
|
// 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();
|
|
}
|
|
}
|
|
}
|