Tôi có một ứng dụng với Giao diện sau. Trong Thư mục lượt xem được chia sẻ, tôi có, _Layout.cshtml
, _SideNav.cshtml
và _CurrentUser.cshtml
.MVC 5 Đối tượng tài khoản người dùng toàn cầu
Trong _Layout.cshtml
tôi có:
@{ Html.RenderPartialIf("_SideNav", Request.IsAuthenticated); }
Trong _SideNav.cshtml
tôi có:
@{ Html.RenderPartial("_CurrentUser"); }
Trong _CurrentUser.cshtml
tôi có:
<div class="login-info">
<span>
<a href="javascript:void(0);" id="show-shortcut" data-action="toggleShortcut">
<img src="~/content/img/avatars/sunny.png" alt="me" class="online" />
<span>@User.Identity.Name</span>
<i class="fa fa-angle-down"></i>
</a>
</span>
</div>
Chúng tôi sử dụng FormsAuthentication
để xác thực người dùng . Chúng tôi không sử dụng xác thực chuẩn Identity
được giao với ASP.Net MVC 5
vì chúng tôi đang sử dụng Máy chủ LDAP
.
FormsAuthentication.SetAuthCookie(username, isPersistent);
.....
HttpContext.Current.User = new GenericPrincipal(new GenericIdentity(username, "Forms"), roles);
Chúng tôi sử dụng username
trong cookie để chúng ta có thể dễ dàng nhận được thông tin từ máy chủ LDAP
.
Sự cố: @User.Identity.Name
trả về tên người dùng đó. Nhưng tôi cần hiển thị tên đầy đủ của người dùng. Tôi có quyền truy cập vào tên đầy đủ khi chúng tôi xác thực. nhưng không chắc chắn làm thế nào để sử dụng nó.
Làm cách nào để chuyển giá trị FullName
từ AccountController
đến chế độ xem một phần của _CurrentUser.cshtml
? Loại giống như một Container toàn cầu như @User.Identity
với nhiều thuộc tính có thể được thiết lập.
Bạn có lưu trữ dữ liệu tùy chỉnh trong cookie xác thực không? –
Không sử dụng nó ra khỏi hộp như trên. Tôi đã thử một giải pháp để lưu trữ dữ liệu tùy chỉnh nhưng điều đó không hoạt động, nó sẽ không cho phép tôi xác thực. Nếu bạn có một giải pháp cho tôi để thử tôi sẽ cho nó một đi. –
FormsAuthenticationTicket chứa thuộc tính UserData. Điều này là miễn phí để sử dụng. Sau khi bạn giải mã vé, bạn có thể truy cập nó với đối tượng tùy chỉnh đọc và ghi. Đối tượng tùy chỉnh có thể chứa thông tin bổ sung mà bạn cần trong khi vé hợp lệ. –