Trong MVC2 Tôi đã sử dụng Page.User.Identity.Name
sử dụng <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
Sử dụng Page.User.Identity.Name trong MVC3
Làm thế nào tôi có thể sử dụng cùng một trong MVC3?
Trong MVC2 Tôi đã sử dụng Page.User.Identity.Name
sử dụng <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
Sử dụng Page.User.Identity.Name trong MVC3
Làm thế nào tôi có thể sử dụng cùng một trong MVC3?
Bạn luôn có thể làm điều gì đó như:
@Html.ViewContext.HttpContext.User.Identity.Name
nhưng không.
Thông thường, chế độ xem không nên tìm nạp thông tin đó. Nó ở đó để hiển thị bất kỳ thông tin nào được truyền bởi bộ điều khiển. Nó sẽ được gõ mạnh vào một lớp mô hình được truyền bởi một hành động điều khiển.
Vì vậy, trong controller action render quan điểm này:
[Authorize]
public ActionResult Index()
{
var model = new MyViewModel
{
Username = User.Identity.Name
}
return View(model);
}
Bây giờ bên trong cái nhìn thoải mái sử dụng thông tin này:
@Model.Username
MVC 2
<%: this.Page.User.Identity.Name %>
MVC 3
@this.User.Identity.Name
Tôi đã gặp vấn đề tương tự. Tôi đã sử dụng this tutorial để giải quyết vấn đề này.
Nói tóm lại, theo quan điểm của bạn, đặt mã này:
@Context.User.Identity.Name
Chỉ cần chắc chắn rằng dự án được thiết lập để xác thực với các cửa sổ.
Tôi chưa hiểu, tôi đang sử dụng FormsAuthentication.RedirectFromLoginPage (user.Name, model.RememberMe); và trong một chế độ xem khác, tôi đang cố gắng tải tên người dùng bằng cách sử dụng trong _LogOnPartial.cshtml bằng cách sử dụng @if (Request.IsAuthenticated) { Chào mừng @ Page.User.Identity.Name! [@ Html.ActionLink ("Đăng xuất", "Đăng xuất", "Tài khoản")] } else { @: [@ Html.ActionLink ("Đăng nhập", "Đăng nhập", "Tài khoản")] } –
learning
Việc sử dụng _LogOnPartial.cshtml trong trường hợp đó là gì? và tôi không thể làm điều đó cho tất cả các quan điểm? – learning
@ user281180, bạn không nên sử dụng 'FormsAuthentication.RedirectFromLoginPage' trong ứng dụng ASP.NET MVC. Cách chính xác để thực hiện chuyển hướng là 'trả về RedirectToAction (" LoggedIn "," SomeController ")' sau khi đã đặt cookie xác thực thành phản hồi (sử dụng [FormsAuthentication.SetAuthCookie] (http://msdn.microsoft.com/vi -us/library/system.web.security.formsauthentication.setauthcookie.aspx)). Sau đó, bên trong hành động LoggedIn chỉ cần lấy tên người dùng và chuyển nó vào mô hình khung nhìn. Vì vậy, hãy sử dụng '@ Model.Username' thay vì' @ Page.User.Identity.Name'. –