我想从我的母版页访问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'更清洁。只是一个品味问题,因为他们做同样的事情。 –
我不明白你在说什么 –