Вам необходимо установить атрибут [Authorize]
для действия и / или контроллера.
А сеанс длится только 2 минуты. Вы можете поместить метку времени в сеансную кухню ie, когда пользователь войдет в систему, а затем создать промежуточное ПО для проверки значения сеанса при каждом выполнении действия. Если значение сеанса старше 2 минут, выйдите из системы.
Как использовать сеанс:
В файле запуска добавьте:
services.AddSession(options =>
{
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
});
и
app.UseSession();
//middleware for checking the 2 minute limit
app.UseMiddleware<SignoutMiddleware>();
Добавьте сеанс везде, где пользователь вошел в систему:
HttpContext.Session.SetString(subjectId, DateTime.Now);
Промежуточное программное обеспечение:
public class SignoutMiddleware
{
private readonly RequestDelegate _next;
public SignoutMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext context)
{
var sessionExpire = context.Session.GetString(context.User.GetSubjectId());
//Do some logic here
await _next.Invoke(context);
}
}
Что касается того, что ваш код делает для входа в систему, вам, вероятно, нужно изменить некоторые , Но должно быть много уроков, если вы просто гуглите:)