2011-01-11 6 views
13

マスターページからUser.Identityにアクセスしようとしているため、どのユーザーがログインしているのかわかりますが、動作させることはできません。私は私のマスターページにSystem.Security.Principalをインポートする場合、それは違いはありません:マスターページからUser.Identityにアクセス

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

私はコントローラー内試みる場合、私は罰金それにアクセスすることができます。

私は何をする必要がありますか?

答えて

51

HttpContext.Current.User.Identityについて

8

<%=HttpContext.Current.User.Identity.Name %>現在のユーザー名を表示します HttpContext.Current.UserはIPrincipalオブジェクトを取得します。ここで

はタイトルだけでユーザー名を表示するマスターページです:

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

あなたはからこれを得ることができます。

あなたは HttpContext.Current.User.Nameを使用していますができ

Context.User.Identity.Name

2

Master Pageコードがスレーブページコードの後に​​のみ実行されることを覚えておく必要があります。したがって、マスターページでセキュリティロジックを実行していない限り、この変数を使用できます。

3

私はその作業

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

または

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

は、このアドオンは受け入れ答えと比べない何と思いますか? – beresfordt

+0

'Page.User'は' HttpContext.Current.User'よりも何らかの形で見えます。彼らは同じことをするので、ちょうど味の問題。 –

+0

私はあなたが何を言っているのか理解できていません –

関連する問題