我创建一个登录页面,我想在成功登录时显示用户信息名称地址等

时间:2017-07-07 05:40:15

标签: c# asp.net

这是Login的控制器代码, 这是用户登录控制器代码,当用户登录重定向到我想显示用户信息的家庭控制器时,我验证用户的电子邮件ID和密码

[HttpPost]
[ValidateAntiForgeryToken]

public ActionResult Login(UserLogin login, string ReturnUrl = ""){
         string message = "";
         using (LoginEntities dc = new LoginEntities()){
              var v = dc.Users.Where(a => a.EmailID == login.EmailID).FirstOrDefault();
              var n = dc.Users.Where(a => a.Password == login.Password).FirstOrDefault();
              if (v != null || n != null ){
                   if (string.Compare(Crypto.Hash(login.Password), v.Password) == 0){
                        int timeout = login.RememberME ? 525600 : 20;
                        var ticket = new FormsAuthenticationTicket(login.EmailID,login.RememberME,timeout);
                        string encrypted = FormsAuthentication.Encrypt(ticket);
                        var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted);
                        cookie.Expires = DateTime.Now.AddMinutes(timeout);
                        cookie.HttpOnly = true;
                        Response.Cookies.Add(cookie);

                        if (Url.IsLocalUrl(ReturnUrl)){
                            return Redirect(ReturnUrl);
                        }
                        else{
                            return RedirectToAction("Index", "Home");
                        }
                    }
                    else{
                        message = "Invalid Credential Provided";
                    }
                }
                else {
                    message = "Invalid Credential Provided";
                }
            }
            ViewBag.Message = message;
            return View();
            }

主页控制器和索引操作,我在登录时重定向, 这是家庭控制器我重定向的地方在成功登录后请一些人给出家庭控制器和索引操作的代码,我可以获取用户的ID登录并告诉我如何在视图中显示

public class HomeController : Controller{
        LoginEntities db = new LoginEntities();
        // GET: Home
        [Authorize]
        public ActionResult Index(){
            if (Session.Contents.Count == 0){
                RedirectToAction("Login", "User");
            }

            return View();
        }
    }

1 个答案:

答案 0 :(得分:0)

更新了我的下面的代码,这可能会或可能不会工作因为它在这里手动编码而不是在实际VS:P

// /Controller/TestController.cs

namespace XXXX.Controllers
{ 
   public class TestController : Controller
   {
        public ActionResult User()
        {
           String UserId = User.Identity.GetUserId().ToString(); 
           ApplicationDbContext db = new ApplicationDbContext();

            var rs = db.Users.Find(UserId);
            var model = new UserViewModel
            { 
                UserName = rs.UserName,
                FirstName = rs.FirstName,
                LastName = rs.LastName,
                Email = rs.Email
             };
             db.Dispose();
             return View(model);
        }
   }
}

// /Models/UserViewModel.cs

namespace XXXX.Models
{  
   public class UserViewModel
  {
     public string Id { get; set; } 
     public string UserName { get; set; } 
     public string Email { get; set; }  
     public string FirstName { get; set; }  
     public string LastName { get; set; } 
  }
}

// /Views/Test/User.cshtml

@model XXXX.Models.UsersCreateViewModel

<p>
  @Html.Raw(Model.FirstName)
</p>

以上只是您可以进一步使用信息的示例

相关问题