我正在编写一个使用 asp.net-mvc 部署到 iis6 的应用程序。我正在使用表单身份验证。通常当用户试图在没有适当授权的情况下访问资源时,我希望他们被重定向到登录页面。FormsAuth 对我来说很容易做到这一点。
问题:现在我有一个控制台应用程序正在访问一个操作。让此操作响应状态 401 而不是将请求重定向到登录页面的最快方法是什么?
我希望控制台应用程序能够对此 401 StatusCode 做出反应,而不是透明的。我还想保留默认值,将未经授权的请求重定向到登录页面行为。
注意:作为测试,我将此添加到我的 global.asax 中,它没有绕过表单身份验证:
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
HttpContext.Current.SkipAuthorization = true;
}
@戴尔和安迪
我正在使用 MVC 预览版 4 中提供的 AuthorizeAttributeFilter。这将返回一个 HttpUnauthorizedResult。这个结果正确地将 statusCode 设置为 401。据我了解,问题是 asp.net 正在拦截响应(因为它被标记为 401)并重定向到登录页面,而不是让它通过。我想绕过对某些 url 的拦截。