We have a website that runs fully on AngularJS with an ASP.NET Web API back-end with the following configuration: - HTML5 routing is enabled on Angular and there is a rewrite rule in web.config to direct all traffic to index.html - MVC is not installed (only razor pages) - Authentication happens using Forms Authentication and related cookies
I have just added the Helicon IIS plugin to have .htaccess password protected for our development server (it's a mess to do it with IIS alone) but I have a basic problem.
After I input the basic auth credentials, I will get a redirect to /login.aspx?ReturnUrl=
and although I'm not sure who is responsible for this (IIS or Helicon plugin), it will match one of my AngularJS routes and result in an error.
How can I stop this redirect from happening?
My web.config authentication bit:
<authentication mode="Forms">
<forms protection="All" timeout="15" name=".ASPXAUTH" path="/" requireSSL="false" slidingExpiration="false" cookieless="UseCookies" enableCrossAppRedirects="false" />
</authentication>
If you are using ASP.NET 4.5. you can disable forms authentication redirect HttpResponse.SuppressFormsAuthenticationRedirect property.
In Global.asax:
In summary, i've put this in global.asax
and for
IsAjaxRequest()
used thisso for every ajax request forms auth will not be redirect anymore. It's the best solution that i've found.
And optionally, put this in client code, for page reload after receiving 401 error answers.