2011-01-11 31 views
13

Tôi đang cố gắng truy cập User.Identity từ trang chính của mình để tôi có thể tìm ra người dùng nào đã đăng nhập, tuy nhiên tôi không thể làm cho nó hoạt động. Nếu tôi nhập System.Security.Principal trong trang chủ của tôi nó làm cho không có sự khác biệt:Truy cập User.Identity từ Master Page

<%@ Import Namespace="System.Security.Principal" %> 

tôi có thể truy cập nó tốt nếu tôi cố gắng trong một Controller.

Bất kỳ ý tưởng nào tôi cần làm?

Trả lời

51

Còn khoảng HttpContext.Current.User.Identity thì sao?

8

<%=HttpContext.Current.User.Identity.Name %> Sẽ hiển thị tên người dùng hiện tại HttpContext.Current.User sẽ nhận đối tượng IPrincipal.

Đây là một trang chủ chỉ hiển thị Username trong tiêu đề:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title> 
     <asp:ContentPlaceHolder ID="TitleContent" runat="server" /> 
    </title> 
    <link href="../../Content/Style.css" rel="stylesheet" type="text/css" /> 
</head> 
<body> 
    <div class="page"> 
     <div id="header"> 
      <div id="title"> 
       <h1 id="maintitle"> 
        <%=HttpContext.Current.User.Identity.Name %> 
       </h1> 
      </div> 
     </div> 
     <div id="main"> 
      <asp:ContentPlaceHolder ID="MainContent" runat="server" /> 
     </div> 
    </div> 
</body> 
</html> 
0

Bạn có thể có được điều này từ:

Context.User.Identity.Name

2

Bạn có thể sử dụng HttpContext.Current.User.Name nhưng bạn cần nhớ rằng mã Master Page chỉ được thực hiện sau mã trang nô lệ. Vì vậy, bạn có thể sử dụng biến này miễn là bạn không thực hiện bất kỳ logic bảo mật nào trong trang chính.

3

Tôi nghĩ rằng công việc của mình

HttpContext.Current.User.Identity.Name.ToString() 

hoặc

Page.User.Identity.Name.ToString() 
+0

không add này so gì để câu trả lời được chấp nhận? – beresfordt

+0

'Page.User' có vẻ sạch hơn bằng' HttpContext.Current.User'. Chỉ cần một vấn đề của hương vị kể từ khi họ làm điều tương tự. –

+0

Tôi không hiểu bạn đang nói gì với tôi –

Các vấn đề liên quan