|
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Security.Principal;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Web.Security;
using MvcLoggingDemo.Models;
using MvcLoggingDemo.Services;
using NLog;
namespace MvcLoggingDemo
{
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
routes.MapRoute(
"Log", // Route name
"{controller}/{action}/{LoggerProviderName}/{id}", // URL with parameters
new { controller = "Logging", action = "Details" } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"OpenIdDiscover",
"Auth/Discover");
}
public override void Init()
{
this.AuthenticateRequest += new EventHandler(MvcApplication_AuthenticateRequest);
this.PostAuthenticateRequest += new EventHandler(MvcApplication_PostAuthenticateRequest);
base.Init();
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
// Setup our custom controller factory so that the [HandleErrorWithElmah] attribute
// is automatically injected into all of the controllers
ControllerBuilder.Current.SetControllerFactory(new ErrorHandlingControllerFactory());
// Register custom NLog Layout renderers
LayoutRendererFactory.AddLayoutRenderer("utc_date", typeof(MvcLoggingDemo.Services.Logging.NLog.UtcDateRenderer));
LayoutRendererFactory.AddLayoutRenderer("web_variables", typeof(MvcLoggingDemo.Services.Logging.NLog.WebVariablesRenderer));
}
void MvcApplication_PostAuthenticateRequest(object sender, EventArgs e)
{
HttpCookie authCookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
string encTicket = authCookie.Value;
if (!String.IsNullOrEmpty(encTicket))
{
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(encTicket);
WebIdentity id = new WebIdentity(ticket);
GenericPrincipal prin = new GenericPrincipal(id, null);
HttpContext.Current.User = prin;
}
}
}
void MvcApplication_AuthenticateRequest(object sender, EventArgs e)
{
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.