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将未经验证的候选对象重定向到登录页面的方式
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有什么想法吗?