David_Wimbley
Я собираюсь сделать первоначальное предположение, что вы используете MVC 4 или выше.
Чтобы ответить на ваши вопросы в первую очередь, вы должны использовать только [Authorize]
атрибут на ваших действиях контроллера, если вы должны войти в систему для просмотра любых данных/страниц, которые обслуживает это действие. Таким образом, в вашем случае, если вы хотите, чтобы пользователь вошел в ваше приложение для просмотра страницы о программе, то да, для этого нужен атрибут Authorize вместе с каждой страницей, для просмотра которой требуется аутентификация пользователя.
Еще одно замечание, есть даже атрибут [AllowAnonymous]
что вы можете украсить действия вашего контроллера, который явно говорит, что пользователи, которые не вошли в систему, имеют возможность просматривать данные / страницу целевого действия.
Таким образом, причина моего предположения заключается в том, что при создании совершенно нового проекта MVC в visual studio, Если вы сделаете правильный выбор проекта, вы должны в конечном итоге создать начальное приложение, которое обеспечивает регистрацию пользователя, вход в систему, Управление учетной записью и возможность анонимного просмотра некоторых страниц vrs требование входа в систему для просмотра других страниц.
Если вы пытаетесь сделать все это с нуля (я предполагаю, что да, так как, как я понимаю ваш вопрос, вы говорите, что каждый раз, когда они нажимают на ссылку с атрибутом Authorize на ней, они должны войти в систему, что означает, что файлы cookie auth не устанавливаются).
Поскольку вы учитесь, я настоятельно рекомендую вам использовать приложение boiler plate, которое автоматически генерируется как новый проект, и строить его поверх этого. Я думаю, что то, на что я ссылаюсь, можно увидеть здесь, только бегло просмотрев эту ссылку: MVC и Identity Framework 2.0[^]
Используя проект, созданный visual studio, вы обходите необходимость кодировать всю внутреннюю сантехнику, необходимую для правильной обработки аутентификации, которая включает в себя постоянные сеансы, чтобы не требовать входа в систему каждый раз, когда они нажимают на действие, украшенное символом [Authorize]
атрибут.
Некоторые дополнительные ссылки, которые я бы посоветовал вам изучить для проверки подлинности MVC.
Обеспечение вашей безопасности ASP.NET приложение MVC 4 и новый атрибут AllowAnonymous – RickAndMSFT в Azure &MVC[^]
ASP.NET идентичность / The ASP.NET сайт[^]
ASP.NET MVC и Identity 2.0: понимание основ[^]