Csharp/C#教程:ASP.NET IAuthorizationFilter OnAuthorization分享


ASP.NET IAuthorizationFilter OnAuthorization

嗨,我正在尝试实现自定义授权filter

//The Authourization attribute on a controller public class CustomAdminAuthorizationFilter : IAuthorizationFilter { private readonly IAuthentication _authentication; public SageAdminAuthorizationFilter(IAuthentication authentication) { _authentication = authentication; } public void OnAuthorization(AuthorizationContext filterContext) { bool result = _authentication.Authorize(filterContext.HttpContext); } } 

正如你在OnAuthorization上看到的那样,我得到的结果是假的。 我需要设置什么才能返回我来自哪里?

编辑:

它似乎仍然让我直接进入登录页面

我注射了IAuthetication

  this.BindFilter(FilterScope.Controller, 0); Bind().To(); 

然后我在控制器中装饰我的动作。

 [Authorize] public ActionResult Index() { ViewBag.Title = "Welcome"; ViewBag.Message = "Welcome to ASP.NET MVC!"; return View(); } 

在我的web.config我使用

    

这应该改变吗?

任何帮助将不胜感激。

将其更改为Attribute ,而不是简单的IAuthorizationFilter

 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] public class SageAdminAuthorizeAttribute : AuthorizeAttribute, IAuthorizationFilter { readonly IAuthentication _authentication; public SageAdminAuthorizeAttribute(IAuthentication authentication) { _authentication = authentication; } public override void OnAuthorization(AuthorizationContext filterContext) { if (!_authentication.Authorize(filterContext.HttpContext)) filterContext.Result = new HttpUnauthorizedResult(); } } 

而现在,而不是使用[Authorize]使用您的新[SageAdminAuthorize]属性

上述就是C#学习教程:ASP.NET IAuthorizationFilter OnAuthorization分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)

 [SageAdminAuthorize] public ActionResult Index() { ViewBag.Title = "Welcome"; ViewBag.Message = "Welcome to ASP.NET MVC!"; return View(); } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/1025193.html

(0)
上一篇 2022年1月8日
下一篇 2022年1月8日

精彩推荐