【发布时间】:2021-07-04 17:27:31
【问题描述】:
我一直在开发一个 asp.net core razor 应用程序,我一直坚持使用视图和模型。但是,我添加了一个前端框架,因此经常使用 HTTP 请求,所以我想我会通过添加控制器来测试 asp.net 核心中的 Web API,将可用的 json 数组传递到前端是多么容易.我的问题是我在我的 razor 应用程序的 startup.cs 中实现了以下代码,以限制任何未登录的用户访问任何其他页面或页面模型,除非已登录:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(cookieOptions => {
cookieOptions.Cookie.Name = "UserLoginCookie";
cookieOptions.LoginPath = "/Login/";
cookieOptions.ExpireTimeSpan = TimeSpan.FromMinutes(30);
cookieOptions.SlidingExpiration = true;
});
这很好用,除了我发现的问题是即使我没有登录我的测试 HomeController 仍然可以访问(url/home/index)。有没有办法使用我用于剃须刀页面的身份验证来限制仅登录用户访问控制器。此外,为了增加一层安全性,我想为登录用户的 ID 存储一个变量服务器端,并将其集成到控制器中,这样我就可以将我的查询限制在该用户,而不会让它成为一个 HTTP 参数,这样任何人都可以访问其他用户数据。
【问题讨论】:
标签: asp.net-core asp.net-web-api asp.net-core-mvc razor-pages asp.net-core-3.1