2011-01-06 5 views

Trả lời

28

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 
+0

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

+0

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

+1

@ 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'. –

11

MVC 2

<%: this.Page.User.Identity.Name %> 

MVC 3

@this.User.Identity.Name 
1

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ổ.