Я не думаю, что есть атрибут «Unauthorize», который можно применить к действиям, и если вы не хотите помещать «[Authorize]» на все, кроме двух действий в контроллере, попробуйте следующее:
Вот два метода, которые я могу придумать:
1- Атрибут местоположения в Web.config (не уверен, будет ли это работать с маршрутизацией MVC и т. Д.)
После вашего
<system.web> stuff </system.web>
в файле web.config, добавьте следующее:
<location path="Account/ActionOne">
<system.web>
<authorization>
<allow users ="*" />
</authorization>
</system.web>
</location>
Где Account / ActionOne - это имя метода действия, к которому вы хотите предоставить анонимный доступ. Для второго действия скопируйте приведенный выше код, вставьте его сразу после него и измените имя действия.
Я не уверен, сработает ли это из-за маршрутизации MVC и т. Д., Но попробуйте.
2- Базовый контроллер
Если предыдущее решение не сработало, лучше всего было бы создать базовый контроллер с атрибутом Authorize:
[Authorize]
public class AuthorizeControllerBase : Controller {}
Тогда пусть все ваши контроллеры наследуются от него:
public class AccountController : AuthorizeControllerBase
{
// your actions etc.
}
Это заставит любой контроллер, который наследует от AuthorizeControllerBase, требует авторизации / входа в систему для вызова любых методов.
Тогда вам нужно будет удалить из вашего web.config