Skip to content

Instantly share code, notes, and snippets.

$webappname = "myepienvironment" # Application name (lowercase alphanumeric only)
$subscriptionname = "My subscription name"
$resourcegroupname ="$($webappname)-resourcegroup"
$location="West Europe"
$sqlservername = "$($webappname)-sqlserver"
$sqladminlogin = "SaUser"
$sqlpassword = "YourSecretAdminPassword1"
# The ip address range that you want to allow to access your SQL server - change as appropriate
$startip = "111.112.113.114"
namespace MyNamespace
{
[ServiceConfiguration(typeof(ISelectionQuery))]
public class GoogleMapsGeocoding : ISelectionQuery
{
private readonly string _googleApiKey;
public GoogleMapsGeocoding()
{
//get key from config
_googleApiKey = ConfigurationManager.AppSettings["GoogleGeocodingApiKey"];
[Display(Name = "Address or coordinates", Description = "Coordinates must be separated by white-space (e.g. \"55.5615205 12.9749824\")", Order = 40)]
[AutoSuggestSelection(typeof(GoogleMapsGeocoding), AllowCustomValues = false)]
public virtual string MapCoordinates { get; set; }
@ErikHen
ErikHen / LoginViewModel.cs
Created May 11, 2017 10:01
Episerver Mixed-mode auth. Login view
public class LoginViewModel
{
[Required]
[Display(Name = "Username")]
public string Username { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
[AllowHtml]
@ErikHen
ErikHen / Global.asax.cs
Created May 11, 2017 09:39
Episerver Mixed-mode auth. Register route
protected override void RegisterRoutes(RouteCollection routes)
{
base.RegisterRoutes(routes);
routes.MapRoute("Custom login", "Login/{action}/", new { controller = "Login", action = "Index" });
}
@ErikHen
ErikHen / LoginController.cs
Created May 11, 2017 09:33
Episerver Mixed-mode auth. Login controller
namespace MyNamespace.Controllers
{
public class LoginController : Controller
{
private UIUserProvider UIUserProvider => ServiceLocator.Current.GetInstance<UIUserProvider>();
private UISignInManager UISignInManager => ServiceLocator.Current.GetInstance<UISignInManager>();
public ActionResult Index()
{
return View("/Views/Shared/Login.cshtml");
@ErikHen
ErikHen / Login.cshtml
Created May 11, 2017 09:30
Episerver Mixed-mode auth. Login view
@{ Layout = null; }
@model MyNamespace.Models.LoginViewModel
<!DOCTYPE html>
<html>
<head>
<title>Log in</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex,nofollow" />
</head>
@ErikHen
ErikHen / Startup.cs
Created May 8, 2017 19:52
Episerver mixed-mode authentication
namespace MyNamespace.Web
{
public class Startup
{
const string LogoutUrl = "/util/logout.aspx";
public void Configuration(IAppBuilder app)
{
// Add CMS integration for ASP.NET Identity
app.AddCmsAspNetIdentity<ApplicationUser>();
@ErikHen
ErikHen / Startup.cs
Created May 2, 2017 13:22
Episerver Federated security
using System;
using System.Configuration;
using System.Security.Claims;
using System.Threading.Tasks;
using System.Web.Helpers;
using EPiServer.Cms.UI.AspNetIdentity;
using EPiServer.Security;
using EPiServer.ServiceLocation;
using Microsoft.Owin;
using Microsoft.Owin.Extensions;