我正在为我的项目创建一个标识页面,我在互联网上的剃须刀页面中找到了一个示例,我设法使其适应MVC核心并得以执行,但是在启动它阻止的级别!
services.AddAuthentication(options =>
{
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
}).AddCookie(options =>
{
options.LoginPath = new PathString("/Login");
options.ExpireTimeSpan = TimeSpan.FromMinutes(5.0);
});
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.AuthorizeFolder("/");
options.Conventions.AllowAnonymousToPage("Login");
});
我应该怎么做才能使其适应我的mvc内核。 谢谢
答案 0 :(得分:1)
您需要使用正确的pageName。如果直接在MVC项目的Pages
文件夹下添加“登录剃须刀页面”,请使用/Login
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.AuthorizeFolder("/");
options.Conventions.AllowAnonymousToPage("/Login");
});
更新:
在MVC中,您只需在Index操作上设置[Authorize]
属性,然后使用
services.AddAuthentication(options =>
{
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
}).AddCookie(options =>
{
options.LoginPath = new PathString("/Account/Login");
options.ExpireTimeSpan = TimeSpan.FromMinutes(5.0);
});
services.AddMvc();