-3

ASP.net MVC4 は初めてです。システムのログイン時間とシステムのログオフ時間を IP アドレスとともに記録できるプログラムを実行したいと考えています。

前もって感謝します....

4

2 に答える 2

1

クライアント IP アドレスの使用を記録するには

HttpContext.Request.UserHostAddress //In Controller

or 

HttpContext.Current.Request.UserHostAddress// In Classes

ログインとログアウトの時間を記録します。

カスタム アクション フィルター クラスを作成し、以下のように日時を記録します。


[CustomFilter(CurrentAction="Login")]
public ActionResult Login()
{
  ...
}

[CustomFilter(CurrentAction="Logout")]
public ActionResult Logout()
{
  ...
}

public class CustomFilter : ActionFilterAttribute
{

    String CurrentAction {get; set;}

    void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)    
    {
        // TODO: Add your action filter's tasks here

      MyDBEntities storeDB = new MyDBEntities ();

      if(CurrentAction.Equals("Login"))
      {
           LoginDetail log = new LoginDetail ()
           {
              LoginTime= DateTime.Now,
              IP = filterContext.HttpContext.Request.UserHostAddress
           };
           storeDB.LoginDetails.Add(log);
      }
      else if(CurrentAction.Equals("Logout"))
      {
          LoginDetail log = new LoginDetail ()
          {
            LogoutTime= DateTime.Now,
            IP = filterContext.HttpContext.Request.UserHostAddress
          };
          storeDB.LoginDetails.Add(log);
      }

      storeDB.SaveChanges(); 
      this.OnActionExecuting(filterContext);
    }
}
于 2013-08-28T13:07:34.113 に答える