Asp.net mvc ASP.NET MVC 4 SPA如何删除重定向到登录页面?
我们正在与SPA(MVC4+angularjs)网站合作,我们希望拒绝未经授权的访问者访问静态文件。 当前,对该静态文件的所有请求都会重定向到登录页面。我们希望接收401或403错误代码。还可以使用ajax请求这些文件 Rootweb.config:Asp.net mvc ASP.NET MVC 4 SPA如何删除重定向到登录页面?,asp.net-mvc,asp.net-mvc-4,authorization,single-page-application,Asp.net Mvc,Asp.net Mvc 4,Authorization,Single Page Application,我们正在与SPA(MVC4+angularjs)网站合作,我们希望拒绝未经授权的访问者访问静态文件。 当前,对该静态文件的所有请求都会重定向到登录页面。我们希望接收401或403错误代码。还可以使用ajax请求这些文件 Rootweb.config: <authentication mode="None"> </authentication> 静态文件文件夹中的Web.config: <configuration> <syste
<authentication mode="None">
</authentication>
静态文件文件夹中的Web.config:
<configuration>
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<clear/>
<add type="System.Web.StaticFileHandler" path="*" verb="*" name="StaticFileHandler"/>
</handlers>
</system.webServer>
</configuration>
我想知道我们如何拒绝未经授权的访问者访问静态文件(不重定向到登录页面)?我最终得到了以下解决方案:
你解决问题了吗?是的,我在下面发布了答案,稍后我将上传基于angularjs+WebApi的SPA web项目模板,并针对MongoDB进行身份验证/授权。
<configuration>
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
<system.webServer>
<handlers>
<clear/>
<add type="System.Web.StaticFileHandler" path="*" verb="*" name="StaticFileHandler"/>
</handlers>
</system.webServer>
</configuration>
<modules runAllManagedModulesForAllRequests="false">
<add
name="SuppressRedirect"
type="Web.Common.Modules.SuppressRedirectModule, Web.Common"/>
</modules>
using System;
using System.Web;
namespace Web.Common.Modules
{
public class SuppressRedirectModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.AuthenticateRequest += this.OnEndRequest;
}
private void OnEndRequest(object sender, EventArgs eventArgs)
{
HttpContext context = ((HttpApplication)sender).Context;
context.Response.SuppressFormsAuthenticationRedirect = true;
}
public void Dispose()
{
}
}
}