MVC在第一次访问站点时立即将用户AD信息保存到数据库

时间:2013-09-05 20:15:31

标签: c# asp.net-mvc-4

我在MVC中使用Windows身份验证。一旦用户第一次通过Intranet访问网页,我想存储用户的Active Directory guid,以及用户访问该网站的日期时间戳到数据库中。

我知道如何从激活目录中获取用户的信息。问题是我在哪里放置该方法,以便仅在用户第一次访问网站时调用,而不是在每个页面请求时调用。

1 个答案:

答案 0 :(得分:0)

我建议您创建ActionFilter

public class ADUserActionFilterAttribute : ActionFilterAttribute
{
  public override void OnActionExecuting(ActionExecutingContext filterContext)
  {
    // Do database stuff
  }
}

在/App_Start/FilterConfig.cs中将其添加为全局过滤器:

public class FilterConfig
{
  public static void RegisterGlobalFilters(GlobalFilterCollection filters)
  {
    filters.Add(new ADUserActionFilterAttribute());
  }
}

在任何人的每次请求中,您都可以验证用户是否在数据库中(并可选择更新他们上次使用网站的时间)。

  

问题是我在哪里放置该方法,以便仅在用户第一次访问网站时调用,而不是在每个页面请求时调用。

这个逻辑在ASP.Net管道中本身不存在,因此您必须自己创建它。在某些时候,您将拥有去数据库以查看记录是否存在。