2016-09-17 1 views
0

감사의 목적으로 타임 스탬프를 사용하여 데이터베이스에 쓸 수 있도록 사용자의 UserId를 가져오고 싶습니다. 이 로그인 CS에서의 코드 내가 리디렉션하기 전에asp.net ID를 사용하여 로그인 할 때 UserId를 얻으려면 어떻게해야합니까?

string thisuser = User.Identity.GetUserId().ToString(); 

또한

string thisuser = System.Web.HttpContext.Current.User.Identity.GetUserId().ToString; 

를 추가하는 시도

if (Page.IsValid) 
{ 
// Validate the user password 
var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>(); 
var signinManager = Context.GetOwinContext().GetUserManager<ApplicationSignInManager>(); 

var result = signinManager.PasswordSignIn((this.LoginView1.FindControl("username") as TextBox).Text, (this.LoginView1.FindControl("password") as TextBox).Text, (this.LoginView1.FindControl("RememberMe") as CheckBox).Checked, shouldLockout: false); 

switch (result) 
{ 
case SignInStatus.Success: 
IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response); 
break; 

파일이지만, 각각의 경우에는 null 값을 반환합니다. 이 로그인 메소드가 아닌 곳에서 실제로 사용자 ID를 얻을 수 있습니까?

답변

0

언제든지 이름으로 사용자를 찾을 수 있습니다. 로그인이 성공 했으므로 UserName에 문제가 없습니다.

var userName = ((this.LoginView1.FindControl("username") as TextBox).Text; 

//... 

switch (result) 
{ 
    case SignInStatus.Success: 
     var loggedInUser = manager.FindByName(userName); 

     //Do your log with loggedInUser! 

     IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response); 
     break; 
    //... 
} 
관련 문제