2017-04-19 117 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

相關問題