2016-11-28 77 views
0

我正在ASP.Net核心項目中實現自定義身份驗證而無需身份驗證。ASP.Net Mvc核心項目未經授權的請求不會重定向到登錄頁面

我有包括CookieAuthentication只是UseMvc之前

app.UseCookieAuthentication(new CookieAuthenticationOptions() 
{ 
    AuthenticationScheme = "Cookie", 
    LoginPath = new PathString("/Account/Login/"), 
    AccessDeniedPath = new PathString("/Account/Forbidden/"), 
    AutomaticAuthenticate = true, 
    AutomaticChallenge = true 
}); 

添加授權自定義策略

services.AddAuthorization(options => 
{ 
    options.AddPolicy("CustomPolicy", 
     policy => policy.RequireClaim("CustomClaim")); 
}); 

而在國內控制我使用的相應auth屬性

[Authorize(Policy = "CustomPolicy")] 
public class HomeController : Controller { } 

我期望將被重定向到/Account/Login/每次嘗試訪問/Home/Index但我只獲得401

我跟着這兩個教程:

什麼我失蹤?


更新: 這個問題,當我使用IIS運行應用程序,從重定向工作正常的exe只存在。

+0

對此我感到很好奇,我最近將生產環境應用程序更新爲最新的.NET Core版本,IIS不再重定向到「帳戶/登錄」操作,而通過可執行文件手動啓動Web應用程序會重定向。我會建議運行該exe文件,看看這是否也適用於您的應用程序。 – ColinM

+0

@ColinM你是對的,謝謝你把我的觀點。當我運行exe時,它通常會重定向到登錄頁面。你找到解決方案嗎?我猜懷疑是web.config,也許它需要'元素。 –

+0

我將在幾個小時內完成工作時嘗試配置中的身份驗證模式,但我無法查看本文和之前發佈的可能導致此問題的.NET Core庫之間的變化。 – ColinM

回答

0

我更新了所有的nuget包,它解決了所有的問題。

相關問題