我製作了一個自定義過濾器,用於觸發每個動作(請求)。所以問題似乎是,當用戶刷新它時,第一次運行該操作時再也不會運行。這就像緩存或其他東西。我第一次啓動了過濾器,所以代碼正在工作(-ish),但是這是頁面的secound loadin正在殺死我。這裏是基本的代碼。在.net2.0中使用自定義過濾器BeforeAction單軌架不總是觸發
using MonoRailHelper;
namespace evergreen.Controllers
{
public class loggedinFilterAttribute : FilterAttribute
{
public loggedinFilterAttribute() : base (ExecuteEnum.BeforeAction, typeof(AuthenticationFilter))
{
String username = Authentication.authenticate();
// save user in database
authUser[] authUser_list = ActiveRecordBase<authUser>.FindAll();
authUser temp = null;
foreach (authUser authUser in authUser_list)
{
if (!string.IsNullOrEmpty(authUser.Nid) && authUser.Nid.ToUpper() == username.ToUpper())
{ temp = authUser; }
}
temp.Logedin = true;
temp.LastActive = DateTime.Now;
temp.Save();
}
}
[loggedinFilter]
[Layout("default"), Rescue("generalerror")]
public abstract class BaseController : MonoRailHelper.HelperBaseController
{
function a bunch
}
}
}
loggedinFilter就是觸發並且temp.LastActive = DateTime.Now;在你進入「新」頁面的時候,它會在數據庫中向上移動,但是當你回去的時候......沒有變化發生。
任何人有任何想法如何解決這個問題?
感謝您的幫助..乾杯-Jeremy
你好,謝謝你,我之前看到的第一個鏈接,但它只是不清楚。可憐的文件恕我直言,但.. .. https://github.com/andypike/Castlecasts/blob/master/Website/src/AndyPike.Castlecasts.Website/Filters/AuthenticationFilter.cs這是完美的指導我如何。謝謝您的幫助.. –