powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ActionFilterAttribute или Custom IController
22 сообщений из 22, страница 1 из 1
ActionFilterAttribute или Custom IController
    #38305947
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно проверять данные пользователя при каждом запросе.
Отсюда вопрос, что лучше использовать ActionFilterAttribute или IController с реализацией метода OnActionExecuting (override)?
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38305959
cooldeveloper2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ActionFilterAttribute
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38305983
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cooldeveloper2,

Мне еще данные подтаскивать с БД надо.
У базового контроллера я могу такое сделать:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 private DataManager _dataManager;

        public RedirectController(DataManager dataManager)
		{
			_dataManager = dataManager;
		}

        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);

            var user = _dataManager.Users.GetUser((int)Membership.GetUser().ProviderUserKey);
            ...............
        }



А как с фильтром сделать что-нибудь похожее?
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38305986
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос снят! ))
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38306000
cooldeveloper2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не совсем хорошая идея в базовом контроллере в OnActionExecuting лупить по БД. Может попасться такой унаследованный контроллер, в котором не потребуется обращаться к БД. Что будешь делать?
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38306015
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cooldeveloper2,

Понял, спс!
А как тогда реализовать проверку на то, что срок пароля истек у пользователя.
Я сейчас сделал с помощью фильтра или для таких вещей что-то лучше есть?
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38306141
cooldeveloper2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лучше это делать в отдельном хттп модуле в соответствующем для этого обработчике аутентификации реквеста. Ну или в global.asax.
Что-то типа такого: http://codearticles.ru/articles/2245
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38306200
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cooldeveloper2,

У меня также присутствует принудительная смена пароля и время жизни пароля.
Т.е. у нового пользователя сразу стоит признак на смену, он только войти сможет.
Есть еще вариант смена пароля через месяц, например, в зависимости от настроек срока.

Вариант, который с global.asax охватит только 1 вариант: нового пользователя. Я прав?
Принудительный вариант не пройдет, т.к. срок не прошел для пароля.
А для пользователей, у которых прошел срок нужно проверять по БД, как разницу текущего времени и даты последней смены пароля.
Или как-то тут можно все сделать?
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38306257
cooldeveloper2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pavluha, в классе MembershipUserValidator ты можешь любую валидацию написать, можно анализировать хоть погоду на луне. Метод Validate ответит на все вопросы.
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38306310
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cooldeveloper2,

Спасибо!

А в чем преимущество варианта с global.asax?
Мне все равно в методе validate придется написать тот же код, что и в фильтре.
Конечно в global.asax мы на пороге уже проверяем пользователя, удобней намного и не надо изменять контороллеры и добавлять в них фильтры.
Также, если появится еще к-н валидация, проще будет ее добавить.
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38306338
cooldeveloper2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PavluhaА в чем преимущество варианта с global.asax?
По сравнению с http модулем? Тем, что не нужно писать отдельную сборку и регистрировать её в конфиге.
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38306399
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cooldeveloper2По сравнению с http модулем? Тем, что не нужно писать отдельную сборку и регистрировать её в конфиге.

Вот тут я немного не понял. :-(
Про какую сборку идет речь?
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38306406
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще вопрос:

В конфиге стоит
Код: xml
1.
2.
3.
4.
5.
6.
7.
<location path="Content">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>



Но при попытке получить тот же css, отсылает на страницу смены пароля
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38306595
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По мне так это ужас:
Код: c#
1.
2.
3.
 if (!Request.Path.StartsWith("/Content/") && !Request.Path.StartsWith("/Scripts/")){
.....
}
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38307302
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PavluhaА как тогда реализовать проверку на то, что срок пароля истек у пользователя.

А почему не делать это во время логина?
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38307831
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПарамонА почему не делать это во время логина?

Можно, но тогда вариант с принудительной сменой пароля не охватывает, а писать несколько проверок в разных местах не хочется.
Самый удобный вариант, как оказался с фильтром, но в данный момент пока остался на варианте с global.asax вот с такой плюшкой:
Код: c#
1.
2.
3.
4.
if (!Request.Path.StartsWith("/Content/") && 
                !Request.Path.StartsWith("/Scripts/") && 
                !Request.Path.StartsWith("/Account/LogOff"))
            {



, которая не очень нравится.
Можно как-то поэлегантней решить вопрос с разрешением доступа к скриптам css?
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38307834
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavluha,

глобальным фильтром

для /Account/LogOff — и прочих, атрибут [AllowAnonymous]

а скрипты и стили не должны попадать под действие, вообще их трогать не нужно
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38307859
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

Если проверка происходит тут в global.asax:
Код: c#
1.
void Application_AuthenticateRequest(object sender, EventArgs e)



то все эти настройки по боку:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<location path="Content">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
<location path="Scripts">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38307864
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttдля /Account/LogOff — и прочих, атрибут [AllowAnonymous]


И вот эти атрибуты тоже по боку
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38307931
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavluha,

еще раз говорю, делаете глобальный фильтр, который решает вашу задачу, для этого фильтры и были предназначены, чтобы вам не пришлось писать свой базовый контроллер или ковырять global.aspx

а вот это

void Application_AuthenticateRequest(object sender, EventArgs e)

на помойку, как и всех тех, кто рекомендует использовать global.aspx для настройки чегобы то нибыло


а вот это вообще бред:

<location path="Content">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="Scripts">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>

Content и Script итак работают и доступны в MVC независимо от ваших настроек доступа, по крайне мере если мы говорим о ASP.NET MVC,а не о чем-то другом. незнаю, первый раз такую бредятину вижу, когда к CSS и JS небыло доступа... покажите свой веб.конфиг, я незнаю как можно было вообще умудриться так настроить...
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38308022
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavluha, выбрали таки MVC вместо WCF?
...
Рейтинг: 0 / 0
ActionFilterAttribute или Custom IController
    #38308032
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,

Нет, это другой проект.
В том буду WCF делать.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ActionFilterAttribute или Custom IController
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]