2017-04-19 122 views
-1

在ASP.NET Core Web应用程序内部我想将未经授权的用户重定向到某个页面。我知道它可以通过Startup.cs中的“LoginPath”属性完成,但我希望它只能在一个特定的控制器上工作。所以我试图创建AuthorizationHandler后代,但我认为不可能从那里重定向到操作。任何意见如何解决这个问题?ASP.NET Core重定向到使用自定义属性的动作

这样可以很清楚:

protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, SelfAuthorizationRequirement requirement) 
    { 
     if (!context.User.Identity.IsAuthenticated) 
      #redirect here 
    } 
+0

你是怎么在AuthroizationHandler审判,为什么你认为这是不可能的?你必须展示一些你已经投入的资金来尝试自己解决它;) – Tseng

+0

使用过滤器检查是否auth,如果不重定向 –

+0

@Tseng我试了很多关于如何做到这一点,但不能找到任何接近我想要的东西,这就是为什么我在这里发布。你还想让我把什么“投资”放进去? :)))哦,无论如何,非常感谢你教我,我必须开始尝试自己:)) –

回答

0

添加[Authorize]属性行动和startup.cs选项身份与你的补丁登录设置。对于的exaple:

services.Configure<IdentityOptions>(options => 
    { 
     options.Cookies.ApplicationCookie.LoginPath = "LoginPath"; 
    }); 

official docs

相关问题