我想從我的母版頁訪問User.Identity,所以我可以找出哪個用戶登錄,但是我不能讓它工作。如果我在母版頁導入System.Security.Principal
它沒有什麼區別:從主頁面訪問User.Identity
<%@ Import Namespace="System.Security.Principal" %>
我可以罰款訪問它,如果我嘗試在控制器內。
任何想法我需要做什麼?
我想從我的母版頁訪問User.Identity,所以我可以找出哪個用戶登錄,但是我不能讓它工作。如果我在母版頁導入System.Security.Principal
它沒有什麼區別:從主頁面訪問User.Identity
<%@ Import Namespace="System.Security.Principal" %>
我可以罰款訪問它,如果我嘗試在控制器內。
任何想法我需要做什麼?
那通過HttpContext.Current.User.Identity
呢?
<%=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>
你可以從這個:
Context.User.Identity.Name
您可以使用HttpContext.Current.User.Name
但你需要記住Master Page
代碼僅在從屬頁面代碼之後執行。所以只要你沒有在母版頁中執行任何安全邏輯,你就可以使用這個變量。
我覺得它的工作
HttpContext.Current.User.Identity.Name.ToString()
或
Page.User.Identity.Name.ToString()
這是什麼插件相比,接受的答案? – beresfordt
'Page.User'似乎比'HttpContext.Current.User'更清潔。只是一個品味問題,因爲他們做同樣的事情。 –
我不明白你在說什麼 –