MVC成员资格问题

| 几乎每次我运行MVC应用程序时,它都会因出现错误而停止,然后转到主页。 更新:这是最新的代码:
public class RequireLoggedIn : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (Membership.GetUser() == null)
            {
                filterContext.Result = new RedirectResult(\"~/Logon\");
            }
        }
    }

    public ActionResult Index()
    {
        MembershipUser myObject = Membership.GetUser();
        Guid UserID = (Guid)myObject.ProviderUserKey;

        DateTime dateTime = new DateTime();
        dateTime = DateTime.Now.AddDays(14);

        var model = db.Task.Where(n => (n.UserId == UserID) && (n.Completed == false) && (n.Due < dateTime));
        return View(model);

    }
为什么这样做呢?过去效果不错。 任何帮助深表感谢。     
已邀请:
在此示例中,我将添加一个属性以检查用户已登录。您根本不希望该操作可用于未经身份验证的用户,因此无需在操作本身的主体中对其进行管理。您可以使用
Authorize
来完成此操作,而不必使用它的形式。 也请检查以下问题:ASP .NET MVC中的Authorize属性是否用于身份验证和授权? 如果要创建一个我建议的自定义属性,请创建一个新的ActionFilterAttribute
public class RequireLoggedIn : ActionFilterAttribute
{
   public override void OnActionExecuting(ActionExecutingContext filterContext) {
      if (Membership.GetUser() == null) {
        filterContext.Result = new RedirectResult(\"~/Logon\");
       }
  }
}
然后,您可以在整个应用程序中以此装饰任何“动作”。简单:)     
根据msdn Membership.GetUser()引发异常,如果您没有任何人登录。 http://msdn.microsoft.com/zh-CN/library/fcxcb339.aspx     

要回复问题请先登录注册