2016-09-17 23 views
0

ユーザーのUserIdを正常にログインさせて、監査目的でタイムスタンプ付きのデータベースに書き込むことができます。このログインCSファイルからasp.net IDを使用してログイン時にUserIdを取得するにはどうすればよいですか?

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; 

コード断片であるIは、リダイレクト前

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

また

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

を追加しようとしたが、それぞれの場合には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; 
    //... 
} 
関連する問題