Сверху головы, если вы используете FormsAuthentication, чтобы ответить на свой первый вопрос - да. Если пользователь не прошел проверку подлинности или не вошел в систему, его можно перенаправить на страницу входа в систему:
Makeуверен, что у вас есть это в файле web.config (не уверен, что если вам что-то нужно, посмотрите на это ..)
<authentication mode="Forms">
<forms loginUrl="~/AccountController/LogOn" timeout="2880" />
</authentication>
Чтобы ответить на ваш второй вопрос: «Если пользователь вошел в систему, но делаетне иметь правильную роль, перенаправить на другую страницу "
Так, как мы это сделали, мы использовали метод System.Web.Security.Roles.GetRolesForUser(username);
, чтобы получить роли, и на основании этого мы перенаправили пользователя в правильное представление, после того, каклогин.
Надеюсь, это поможет!