Базовое состояние сеанса ASP.NET - PullRequest
0 голосов
/ 15 января 2019

У меня есть контроллер, где у меня есть несколько методов. В методе входа я запускаю HttpContext.Session.SetInt32("ID"), если вход успешный. Этот идентификатор является идентификатором пользователя, вошедшего в систему. Я использую этот идентификатор во многих других методах для выполнения дополнительных вычислений и запросов. В каждом методе я должен объявить переменную как ?int userId = HttpContext.Session.GetINT32("ID") чтобы использовать эту переменную в этом методе.

Как я могу объявить это глобально таким образом, чтобы я мог использовать его в других методах Action без использования оператора HttpContext.Session.GetInt32. Я просто пытаюсь использовать принцип СУХОГО, чтобы мой код был чище.

Любая помощь будет оценена?

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Если вы используете Идентичность , то вы можете получить идентификатор пользователя следующим образом:

User.Identity.GetUserId(); // <-- this is inside controller
0 голосов
/ 15 января 2019
public class HomeController : Controller
{
    private readonly DataContext _context;
    private readonly IRepository _repo;

    public HomeController(DataContext context, IRepository repo)
    {
        this._context = context;
        this._repo = repo;
    }

    public int GetUserId()
    {
       return (int)HttpContext.Session.GetInt32("ID");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...