2011-12-29 5 views
0

Я кормлю простую онлайн-игру, в определенное время, каждый день игра будет обновляться, и когда придет время, сначала мне нужно выйти из системы. В функции «Application_Start» в Global.asax я инициализирую таймер, и когда он тикает, вызывается метод «UpdateGame», который я написал в Global.asax. здесь есть метод:выйдите из системы в Global.asax

public static void UpdateGame() 
    { 

     AccountController account = new AccountController(); 
     AdminController admin = new AdminController(); 
     HomeController home = new HomeController(); 

     account.LogOff(); 
     admin.ChechHireEndTimes(); 
     admin.CheckRentsEndTimes(); 
     admin.UpdateRankings(); 
     admin.InitializeAbstractTimes(); 
    } 

Когда дело доходит до logOff(), оно замерзает. здесь метод LOGOFF:

[Authorize] 
    public ActionResult LogOff() 
    { 

      FormsService.SignOut(); 
      return RedirectToAction("Index", "Home");    
    } 

Я много работал на нем, но, кажется, что из-за выхода из системы не вызывается с запросом HTTP, он не работает, когда пользователь нажимает на кнопку выхода из системы.

так что мой вопрос в том, как я могу вызвать действие контроллера, подобное этому, изнутри Global.asax?

+0

Этот [ответ] (http://stackoverflow.com/a/2355104/60108) может вам помочь. – Eranga

+0

Да, спасибо Эранге, Это был мой ответ. – nafiseh

ответ

1

Вы не можете выполнить отключение в global.asax без контекста пользователя. Какой пользователь должен быть отключен, когда вы делаете account.LogOff()? Я считаю, что перенаправление (RedirectToAction) с app_start, вероятно, замораживает ваше приложение.

Для извлечения всех пользователей вы можете использовать глобальный флаг LastUpdated (установленный методом UpdateGame в текущее время). При входе в систему вы можете поместить значение LastUpdated в пользовательский сеанс и в каждом запросе проверить это значение с глобальным значением. Если глобальное значение выше, вы можете выйти из текущего пользователя, вызвав метод выхода из системы.

+0

спасибо VinayC, я понял! – nafiseh

Смежные вопросы