问题描述: 在ASP.Net Core 2.2中,授权重定向(Authorize Redirect)不起作用。
解决方法: 要解决这个问题,可以按照以下步骤进行操作:
Startup.cs
文件中,在ConfigureServices
方法中添加以下代码:services.AddMvc(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
ConfigureServices
方法中,确保添加了身份验证服务:services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.AccessDeniedPath = "/Account/AccessDenied";
options.LoginPath = "/Account/Login";
options.LogoutPath = "/Account/Logout";
options.SlidingExpiration = true;
});
Configure
方法中添加身份验证和授权中间件:app.UseAuthentication();
app.UseAuthorization();
[Authorize]
特性进行标记:[Authorize]
public class HomeController : Controller
{
// ...
}
这些步骤将确保身份验证和授权中间件正确工作,并在用户未经授权时重定向到指定的登录路径。请确保在ConfigureServices
方法中使用正确的路径。