В mvc после регистрации новый пользователь не хочет входить - PullRequest
0 голосов
/ 07 января 2012

Я создал веб-приложение mvc. Я использовал членство провайдера для регистрации.

Но, когда я регистрирую нового пользователя, он автоматически входит в систему, Я не хочу этого, скорее, я хочу проверить, если свойство isapproved имеет значение false, то оно должно перейти на любую другую страницу, скажем, на

//redirect to Welcome page
return RedirectToAction("Welcome", "Home");

Также хотите проверить роль пользователя.

Ответы [ 2 ]

6 голосов
/ 07 января 2012

Просто удалите следующий вызов из действия Register:

FormsAuthentication.SetAuthCookie(model.UserName, false);

Это то, что испускает cookie аутентификации и при последующем запросе (после перенаправления), и пользователь считается аутентифицированным.Без использования файла cookie для аутентификации пользователь не будет авторизован.

1 голос
/ 07 января 2012

@ Дарин дал вам ответ об обходе немедленного входа после регистрации.Что касается другого вашего вопроса, у вас, вероятно, есть что-то похожее на ваш метод действия при регистрации:

Membership.CreateUser(
    model.UserName, 
    model.Password, 
    model.Email, 
    null, 
    null, 
    true, 
    null, 
    out createStatus
);

Это один из методов перегрузки метода CreateUser из Класс членства .

Измените его на это, чтобы установить IsApproved на false.

Membership.CreateUser(
    model.UserName, 
    model.Password, 
    model.Email, 
    null, 
    null, 
    false, 
    null, 
    out createStatus
);

Затем, при входе в систему, при проверке достоверности пользователяс кодом ниже, вам не нужно проверять, одобрен пользователь или нет.Это делает это для вас:

Membership.ValidateUser(model.UserName, model.Password)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...