MVC模式下具体实现登入笔记

1.mvc添加登入验证

   public class RequireLoginAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //redirect if not authenticated
            if (IdentityUser.UserId<=0)
            {
                //use the current url for the redirect
                string redirectOnSuccess =Uri.EscapeUriString(filterContext.HttpContext.Request.RawUrl);

                //send them off to the login page
                string redirectUrl = string.Format("?ReturnUrl={0}", redirectOnSuccess);
                string loginUrl = FormsAuthentication.LoginUrl + redirectUrl;
                filterContext.HttpContext.Response.Redirect(loginUrl, true);
            }
        }
    }

  2.把登入信息填好

  private void FillUserInfo(UserInfo etUserInfo)
        {
            Session.Clear();
            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, etUserInfo.UserName,DateTime.Now, DateTime.Now.AddMinutes(WebConfiguration.GetSessionStateTimeout.Minutes), false, etUserInfo.Id + ";"+etUserInfo.PassWord+";", FormsAuthentication.FormsCookiePath);
            string hash = FormsAuthentication.Encrypt(ticket);
            HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash); //Hashed ticket
            Response.Cookies.Add(authCookie);
            //FormsAuthentication.SetAuthCookie(etUserInfo.UserName, false, authCookie.Path);
        }

3.再在需登入的操作前加 [RequireLogin]如

        [RequireLogin]
        [Transaction]
        [AcceptVerbs(HttpVerbs.Post)]
        public void Delete()

{

}

这样就可以实现登入限制的功能了

posted @ 2009-11-06 10:37  scott.pei  阅读(387)  评论(0编辑  收藏  举报