我有一个自定义处理程序,在某些情况下,我想向用户代理指出它们未被授权(Http错误代码401)
if (!IsAuthorized(context))
{
context.Response.StatusCode = 401;
context.Response.End();
return;
}
当我访问我的处理程序时,我实际上获得了302并重定向到表单身份验证页面。有没有办法阻止这种情况发生?
答案 0 :(得分:4)
您的方案听起来像是“拒绝访问”而不是“未经授权”。你能使用403作为“拒绝访问”的HTTP状态代码吗?
答案 1 :(得分:1)
听起来您已为该页面启用了身份验证。如果是这种情况,那么您的应用程序在切换到自定义处理程序之前调用身份验证。这就是你看到登录页面的原因。
在处理程序接收调用之前,将填充处理程序中的isAuthorized。您将需要使用模块并挂钩进入身份验证生命周期事件。请参阅Asp.Net Life Cycle