我有一个使用ASP的应用程序.NET窗体身份验证.在大多数情况下,它工作得很好,但我正试图通过.ashx文件.我希望ashx文件具有可选的身份验证(即,如果不提供身份验证头,那么它只是匿名工作).但是,根据您的工作,我希望在某些条件下要求身份验证.
我认为,如果没有提供所需的身份验证,那么用状态代码401进行响应将是一个简单的问题,但似乎Forms authentication模块正在拦截该信息,并以重定向到登录页面的方式进行响应.我的意思是,如果我的ProcessRequest
方法是这样的:
public void ProcessRequest(HttpContext context)
{
Response.StatusCode = 401;
Response.StatusDescription = "Authentication required";
}
然后,我没有像我预期的那样在客户机上得到401错误代码,而是actually得到了302重定向到登录页面.
对于nornal HTTP流量,我可以看出这是多么有用,但对于我的API页面,我希望401能够不经修改地通过,以便客户端调用程序能够以编程方式响应它.
有办法吗?