验证连接用户的存在

时间:2014-04-18 20:50:21

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

我在asp.net mvc4应用程序中使用了自定义 Membershipprovider roleprovider 类。

这段代码工作正常:

[OutputCache(Duration =0, NoStore= true)]
    public class HomeController : Controller
    {
      public ActionResult Login(string ReturnUrl)
         { 
            return View(new User());
                  }

        [HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public ActionResult Login(User u, string ReturnUrl) {
            if (Membership.ValidateUser(u.login, u.password))
            {
                FormsAuthentication.SetAuthCookie(u.login, false);
               if (Roles.GetRolesForUser(u.login).Contains("user")) return RedirectToAction("Index");
                else return RedirectToAction("Common");
            }
            else {
                return View(u);
            }
        }

        [Authorize(Roles = "user")]
        public ActionResult Index()
        {
            return View();
        }
         [Authorize(Roles="admin")]
        public ActionResult Common()
        {
            return View();
        }

         public ActionResult SignOut()
         {
             FormsAuthentication.SignOut();
              return RedirectToAction("Login");
         }
    }

但我需要验证Login操作

中是否存在已连接的用户
 public ActionResult Login(string ReturnUrl)
             { 
              //verification and redirection if connected
                return View(new User());
                      }

我需要知道:

  1. 这样做有什么不同的方式?
  2. 最好的是什么?

1 个答案:

答案 0 :(得分:2)

你可以这样检查:

if (User.Identity.IsAuthenticated)
{
// user logged in already
}