2016-10-16 14 views
1

ユーザーが次のコードで正常にログインした後、クッキーにユーザーのフルネームを保存しています。asp.netコア1.0.1のcookieから値を読み取る

var res = await _signInManager.PasswordSignInAsync(suser.UserName, user.Password, user.Remember, false); 
       if (res.Succeeded) 
       { 
        Response.Cookies.Append("fullName", suser.FullName); 
        if (string.IsNullOrWhiteSpace(returnUrl)) 
         return RedirectToAction("Dashboard", "User"); 
        else 
         return Redirect(returnUrl); 
       } 

私は、マスターページにフルネームを表示できるように、_Layoutページでは、この値を読むことをお勧めします。ソリューションによると、thisポストに記載されています。私は_Layoutページでsysntaxに従ってみました。

@inject Microsoft.AspNetCore.Http.IHttpContextAccessor HttpContextAccessor 
@{ 
     ViewBag.FullName = HttpContextAccessor.HttpContext.Request.Cookies["fullName"]; 
} 

しかし、ViewBag.FullNameには値がありません。私はここで何か間違っていますか?ビューでクッキーに保存された値を読み取る方法は?

答えて

0

私はあなたと同じ結果を得るためにいくつかのテストを行っています。

私はそれを見て、あなたはResponse.Cookieに新しいクッキー値を追加し、Request.Cookiesでそれにアクセスしようとしているので、追加された値( "fullname")は次のリクエスト(リダイレクト後)。同じリクエストでレンダリングされたビューでクッキーを設定しようとすると、クッキーの値はnullになります。

"return View()"と "return RedirectToAction"でテストを行い、2番目のテストだけが機能しました。

あなたのコードではリダイレクトを行っていますが、それをデバッグし、そのコード行にコードが入力されているかどうか確認してください。そうであれば、リダイレクトするアクションに進み、それをデバッグし、Request.CookiesがOKかどうか確認してください。

よろしくお願いいたします。

+0

コードをデバッグしました。 –

関連する問題