繁体   English   中英

如何更改与控制反转原理兼容的代码?

[英]How do I change the code that is compatible with the principle of inversion of control?

我在Web应用程序中使用AuthorzieAttribute进行身份验证和授权。 如何更改与控制反转( IOC )原理兼容的HandleUnauthorizedRequest方法?

public class AuthorizeUser : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        return SessionContext.GetCurrentUser() != null ? true : false;
    }
    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        filterContext.Result = new RedirectToRouteResult(
                    new RouteValueDictionary(
                        new
                        {
                            returnUrl = filterContext.HttpContext.Request.Url,
                            Area = "",
                            controller = "Account",
                            action = "Login"
                        })
                    );
    }
}

回答:

protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
     filterContext.HttpContext.Response.RedirectToRoute(new { controller = "Account", action = "Login", returnUrl = filterContext.HttpContext.Request.Url });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM