2014-07-23 2 views
0

저는 C#과 ASP.NET을 처음 사용했습니다.로그인시 사용자 데이터 저장

나는 각 시스템에 대해 사용자의 개인 계정/api 키를 사용하는 2 개의 서로 다른 웹 서비스를 사용하는 사이트를 만들고 있습니다. 사용자가 시스템에서 계정을 만들면이 정보를 사용합니다. 사용자가 로그인하자마자 데이터베이스에서이 정보를 검색하여 세션에 저장하여 사이트에서 API 중 하나를 호출 할 때마다 사용할 수 있도록하고 싶습니다. WebSecurity.CurrentUserId이 시점에서 아직 설정되지 않았기 때문에 분명히이 작동하지 않습니다,

public ActionResult Login(LoginModel model, string returnUrl) 
{ 
    if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) 
    { 
    SiteEntities SiteDB = new SiteEntities(); 
    Session["user"] = SiteDB.T_USER.Find(WebSecurity.CurrentUserId); 
    return RedirectToLocal(returnUrl); 
    } 

    // If we got this far, something failed, redisplay form 
    //ModelState.AddModelError("", "The user name or password provided is incorrect."); 
    ViewBag.WarningMessage = "The user name or password provided is incorrect."; 
    return View(model); 
} 

을하지만 :

이 나는 ​​노력했다.

제 질문은 최대한 빨리 사용자의 데이터를 가져와 사용자의 전체 방문에 사용할 수 있도록하려는 경우 어디에서 검색해야합니까?

답변

0

나는 그래서 당신의 코드는 다음

public ActionResult Login(LoginModel model, string returnUrl) 
{ 
    if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) 
    { 
    SiteEntities SiteDB = new SiteEntities(); 
    // ------- updated the below line to use username ------------------------------- 
    Session["user"] = SiteDB.T_USER.Find(model.UserName); 
    return RedirectToLocal(returnUrl); 
    } 

    // If we got this far, something failed, redisplay form 
    //ModelState.AddModelError("", "The user name or password provided is incorrect."); 
    ViewBag.WarningMessage = "The user name or password provided is incorrect."; 
    return View(model); 
} 
과 같아야합니다 사용자 아이디 대신 정보를 찾는 사용자 이름을 사용하는 것이 좋습니다
관련 문제