2011-01-11 10 views
13

Próbuję uzyskać dostęp do User.Identity z mojej strony wzorcowej, aby dowiedzieć się, który użytkownik jest zalogowany, ale nie mogę go uruchomić. Jeśli mogę importować System.Security.Principal w mojej strony wzorcowej nie ma znaczenia:Dostęp do User.Identity from Master Page

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

mogę do niego dostęp w porządku, jeśli staram się w kontrolerze.

Każdy pomysł, co muszę zrobić?

Odpowiedz

51

Co z numerem telefonu HttpContext.Current.User.Identity?

8

<%=HttpContext.Current.User.Identity.Name %> Wyświetli bieżącą nazwę użytkownika HttpContext.Current.User otrzyma obiekt IPrincipal.

Oto strona mistrz, który wyświetla tylko nazwę użytkownika w tytule:

<%@ 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

Formularz ten można uzyskać od:

Context.User.Identity.Name

2

Można użyć HttpContext.Current.User.Name ale ci trzeba pamiętać, że kod Master Page jest wykonywany tylko po kodzie strony podrzędnej. Możesz więc użyć tej zmiennej, o ile nie wykonuje się żadnej logiki bezpieczeństwa na stronie wzorcowej.

3

myślę swoich pracach

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

lub

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

Co to dodatek w porównaniu z przyjętym odpowiedź? – beresfordt

+0

'Strona.User' wydaje się czyściej jakoś inaczej niż' HttpContext.Current.User'. Tylko kwestia gustu, ponieważ robią to samo. –

+0

Nie rozumiem, co mówisz ze mną –