2016-07-04 74 views
0

我的ASP.NET核心应用程序要求用户登录。我创建了一个公益行动方法,允许匿名用户即自动重定向到公共视图

[AllowAnonymous] 
public IActionResult Public() 
{ 
    return View(); 
} 

因为在我Startup.cs我需要身份验证,用户被自动重定向到登录页面。

enter image description here

我想改变的行为,并自动将用户重定向到公共页面,并让他们点击一个链接登录。

如何将我的用户重定向到公共页面而不是登录页面?在App_Start

+0

为什么不把'LoginPath'改成'/ home/public /'?该框架将自动将未经身份验证的用户(具有“授权”属性的操作)发送到此路径。 – martennis

回答

0

只是改变默认映射:

routes.MapRoute(
     "Default", // Route name 
     "{controller}/{action}/{id}", // URL with parameters* 
     new { controller = "Public", action = "Public", 
     id = UrlParameter.Optional } 
); 

UPDATE

您的评论后,我想这会回答您的需求:

services.Configure<IdentityOptions>(options => 
{ 
    options.Cookies.ApplicationCookie.LoginPath = new PathString("/Home/Public"); 
}); 

将其添加到启动的ConfigureServices方法。 cs

+0

那会不会把所有的请求发送给公众?我只想将未经过身份验证的请求发送给公共。一旦用户登录,我确实希望将它们发送到主页。 – Sam

+0

@Sam查看我的更新答案。 – Lesmian