Получение информации о пользователе из базы данных при наличии утверждений об идентичности

Должен признаться, я новичок в MVC... так что сейчас все похоже на черную магию.

это код

        public ActionResult LogIn(Models.profile profile)
    {
        if (ModelState.IsValid)
        {
            if(IsValid(profile.profile_email, profile.profile_password))
            {
                var db = new DatabaseContext();
                var _id = db.profile.Where(u => u.profile_email == profile.profile_email).Select(n => n.profile_id).FirstOrDefault();
                var identity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Email, profile.profile_email),
                                                          new Claim(ClaimTypes.Name, _id.ToString())}, 
                                                          "ApplicationCookie");
                var ctx = Request.GetOwinContext();
                var authmngr = ctx.Authentication;

                authmngr.SignIn(identity);

                return RedirectToAction("LogIn", "Main");
            } else
            {
                ModelState.AddModelError("", "Something goes wrong");
            }
        }

        return View(profile);
    }

Мне удалось войти в систему с идентификацией, что было довольно сложно @_ @ Дело в том, что эти типы утверждений не слишком гибки из того, что я видел. Я имею в виду, что мне нужно выбрать что-то из списка, и я просто выбираю свои собственные свойства или что-то в этом роде.

Итак, я решил сохранить текущий идентификатор пользователя в файле ClaimTypes.Name. Не уверен, что это хорошая идея. Я даже не уверен, что весь шаблон входа в систему является жизнеспособным; o

Но... к делу. Как мне получить информацию о пользователе только с этим утверждением, если там не будет идентификатора пользователя? Или как я могу вообще получить информацию о пользователях из базы данных, используя идентификатор утверждений?

Если есть что добавить, дайте знать ;3


person Harugawa    schedule 05.10.2016    source источник
comment
Это может помочь: создание и использование настраиваемых типов утверждений: «как управлять сеансом в идентификаторе aspnet»> stackoverflow.com/questions/32880269/   -  person Brendan Green    schedule 06.10.2016
comment
@BrendanGreen Спасибо, это оказалось полезным; 3   -  person Harugawa    schedule 08.10.2016