Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 框架4.7中缺少OnRedirectToLogin_Asp.net_Asp.net Mvc_Asp.net Identity - Fatal编程技术网

Asp.net 框架4.7中缺少OnRedirectToLogin

Asp.net 框架4.7中缺少OnRedirectToLogin,asp.net,asp.net-mvc,asp.net-identity,Asp.net,Asp.net Mvc,Asp.net Identity,我想使用OnRedirectToLogin事件(存在于ASP.NET Core上,但不在.NET Framework 4.7中)来操纵ASP.NET Identity将未经验证的候选对象重定向到登录页面的方式 以上有没有其他选择 这是否意味着微软开始在.NET核心和.NET框架之间创建功能缺口,这也是在.NET框架之上使用.NET核心启动新项目的另一个原因 以上有没有其他选择 对。子类AuthorizeAttribute并重写该方法HandleUnauthorizedRequest仅在用户未经授

我想使用
OnRedirectToLogin
事件(存在于ASP.NET Core上,但不在.NET Framework 4.7中)来操纵ASP.NET Identity将未经验证的候选对象重定向到登录页面的方式

  • 以上有没有其他选择
  • 这是否意味着微软开始在.NET核心和.NET框架之间创建功能缺口,这也是在.NET框架之上使用.NET核心启动新项目的另一个原因
  • 以上有没有其他选择

    对。子类
    AuthorizeAttribute
    并重写该方法
    HandleUnauthorizedRequest
    仅在用户未经授权时激发

    public class CustomAuthorize : AuthorizeAttribute
    {
        public override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            filter.Result = new RedirectToRouteResult(...);
        }
    }
    
    然后在通常使用
    [CustomAuthorize]
    的任何地方使用
    [Authorize]

    这是否意味着微软开始在.NET核心和.NET框架之间创建功能缺口,这也是在.NET框架之上使用.NET核心启动新项目的另一个原因

    由于
    AspNetCore
    是一个全新设计的完全不同的UI框架,而不是
    ASP.NET MVC
    的演变,因此可以预期它们之间会存在差距。尽管如此,除非您是一名希望同时支持这两个框架的库开发人员,否则我看不出这是一个什么问题

    以上有没有其他选择

    对。子类
    AuthorizeAttribute
    并重写该方法
    HandleUnauthorizedRequest
    仅在用户未经授权时激发

    public class CustomAuthorize : AuthorizeAttribute
    {
        public override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            filter.Result = new RedirectToRouteResult(...);
        }
    }
    
    然后在通常使用
    [CustomAuthorize]
    的任何地方使用
    [Authorize]

    这是否意味着微软开始在.NET核心和.NET框架之间创建功能缺口,这也是在.NET框架之上使用.NET核心启动新项目的另一个原因


    由于
    AspNetCore
    是一个全新设计的完全不同的UI框架,而不是
    ASP.NET MVC
    的演变,因此可以预期它们之间会存在差距。尽管如此,除非您是希望同时支持这两个框架的库开发人员,否则我看不出这是一个什么问题。

    您可以在CookieAuthenticationProvider上使用OnApplyRedirect事件。请注意,上下文参数是CookieAppyRedirectContext,而不是标准的HttpContext

    更多信息

    var options=新CookieAuthenticationOptions
    {
    AuthenticationType=DefaultAuthenticationTypes.ApplicationOkie,
    LoginPath=“帐户/登录”,
    Provider=新CookieAuthenticationProvider
    {
    OnValidateIdentity=SecurityStampValidator.OnValidateIdentity(
    validateInterval:TimeSpan.FromMinutes(30),
    regenerateIdentity:(管理器,用户)=>user.GenerateUserIdentityAsync(管理器)),
    OnApplyRedirect=context=>
    {
    //在这里做点什么
    }
    }                 
    };
    }
    
    您可以在CookieAuthenticationProvider上使用OnApplyRedirect事件。请注意,上下文参数是CookieAppyRedirectContext,而不是标准的HttpContext

    更多信息

    var options=新CookieAuthenticationOptions
    {
    AuthenticationType=DefaultAuthenticationTypes.ApplicationOkie,
    LoginPath=“帐户/登录”,
    Provider=新CookieAuthenticationProvider
    {
    OnValidateIdentity=SecurityStampValidator.OnValidateIdentity(
    validateInterval:TimeSpan.FromMinutes(30),
    regenerateIdentity:(管理器,用户)=>user.GenerateUserIdentityAsync(管理器)),
    OnApplyRedirect=context=>
    {
    //在这里做点什么
    }
    }                 
    };
    }
    
    您对问题2有什么想法吗?您对问题2有什么想法吗?