Skip to content

Instantly share code, notes, and snippets.

@anujb
Created August 8, 2011 19:00
Show Gist options
  • Save anujb/e297b435ceb8f022fb95 to your computer and use it in GitHub Desktop.
Save anujb/e297b435ceb8f022fb95 to your computer and use it in GitHub Desktop.
RequireBasicAuthAttribute
public class RequireBasicAuth : ActionFilterAttribute
{
public bool RequireSsl { get; set; }
private IAuthProvider AuthProvider { get; set; }
public RequireBasicAuth(bool requireSsl = true)
{
AuthProvider = MunqDependencyResolver.Container.Resolve<IAuthProvider>();
AuthProvider.RequireSsl = true;
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext == null)
throw new ArgumentNullException("FilterContext");
if (AuthProvider == null)
throw new ArgumentNullException("IAuthProvider");
if (AuthProvider.Authenticate(filterContext) == false)
{
var req = filterContext.HttpContext.Request;
var response = filterContext.HttpContext.Response;
response.StatusCode = 401;
response.AddHeader("WWW-Authenticate", "Basic realm=\"Emergidata\"");
response.End();
}
else
{
var controller = filterContext.Controller as IAppController;
controller.DynamicSession= AuthProvider.AuthProviderContext;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment