Take a look at this custom authorization attribute that I made. This should have done some role-based authorization, but you could have made it work for you too. There is a Session.IsNewSession property, which you can check to see if this request is being executed in a new session.
public class CustomAuthorizeAttribute : AuthorizeAttribute { protected override bool AuthorizeCore(HttpContextBase httpContext) { if (httpContext.User.Identity.IsAuthenticated) { httpContext.User = new GenericPrincipal(httpContext.User.Identity, AdminUserViewModel.Current.SecurityGroups.Select(x => x.Name).ToArray()); } return base.AuthorizeCore(httpContext); } protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { if (filterContext.HttpContext.User.Identity.IsAuthenticated) { filterContext.Result = new RedirectResult("/Authentication/NotAuthorized", false); } else { if (filterContext.HttpContext.Session.IsNewSession) {
source share