+! Спасибо! Никаких проблем с перфорированием, из-за веб-форм и других оконных разработок. Я просто думал, что делаю что-то ужасно неправильно / эффективно! (Также я обычно самокритичен! = P)

ожет быть немного невежественный вопрос, но я новичок в mvc, так что я извиняюсь!

Я изучил модель аутентификации обеда для ботаников, но в моем приложении сложная аутентификация на основе ролей. Итак, что я делаю, это:

 void MvcApplication_PostAuthenticateRequest(object sender, EventArgs e)
        {
            HttpCookie authCookie = HttpContext.Current.Request
               .Cookies[FormsAuthentication.FormsCookieName];
            if (authCookie != null)
            {
                string encTicket = authCookie.Value;
                if (!String.IsNullOrEmpty(encTicket))
                {
                    FormsAuthenticationTicket ticket = 
                            FormsAuthentication.Decrypt(encTicket);
                    CustomIdentity id = new CustomIdentity(ticket.Name);
                    GenericPrincipal prin = new GenericPrincipal(id, id.Roles);
                    HttpContext.Current.User = prin;
                }
            }
        }

При входе в систему я аутентифицирую имя пользователя / пароль с помощью FormsAuth, а затем создаю cookie.

Проблема здесь каждый раз, когда я создаю пользовательскую личность, я должензапросить в базе данных роли пользователей, Есть ливерный обойти это или я делаю правильную вещь, чтобы запросить БД на каждый входящий запрос? Должен ли я сохранить список ролей в куки или что-то?

Я также не совсем понимаю весь жизненный цикл того, как аутентификация форм заботится об аутентификации? Я использую то же самоеIFormsAuthentication шаблон дизайна, что пользователи ужин ботаник и во время входа я звонюFormsAuth.SignIn() который в свою очередь вызываетFormsAuthentication.SetAuthCookieКогда ему удается позвонитьmembershipservice.validateuser() метод ?? Также еслибыл установлен auth cookie зачем ботанику на ужин создать билет, затем добавить его в запрос, а затем прочитать его во времяPostAuthenticationRequest чтобы проверить, какой это был пользователь. Работает ли билет как сессия?

Спасибо! Счастливого Рождества!

Обновить : Эта ссылка дал мне немного лучшее понимание о билете аутентификации форм.

Ответы на вопрос(1)

Ваш ответ на вопрос