我正在写一个web应用程序,我想从AdminControler做未经授权的请求将重定向到AdminController中的登录方法,并为未经授权的用户从UserController重定向到Login方法UserController的。我写了这样的东西,但我得到错误...我的类属性被添加到filterConfig中。重定向管理员和用户到不同的页面登录失败后授权
public class AdminAuthorize : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
var ctx = filterContext.HttpContext.GetOwinContext();
if (!ctx.Authentication.User.Identity.IsAuthenticated)
{
ctx.Authentication.SignOut();
var controler = (string)filterContext.RouteData.Values["controller"];
var url = filterContext.HttpContext.Request.FilePath;
if (controler.Equals("Admin"))
{
filterContext.HttpContext.Response.Redirect("~/Admin/Login"); //exception
}
else
{
filterContext.HttpContext.Response.Redirect("~/Account/Login"); //exception
}
}
else
{
base.OnAuthorization(filterContext);
}
}
}
异常:类型System.Web.HttpException'的一个例外发生在System.Web.dll中但在用户代码 内的异常没有被处理的:发送所述HTTP标头,该服务器不能附加标题后。
我将不胜感激您的帮助!
该异常是否有内部异常? – Amy
我得到这个:在发送服务器不能附加标头的HTTP标头之后。 – rejencina
看一些这些答案,看看是否有帮助http://stackoverflow.com/questions/4435716/asp-net-response-redirect-not-working-in-application-error – MethodMan