Доступ к User.Identity с главной страницы

Я пытаюсь получить доступ к User.Identity с моей главной страницы, чтобы я мог выяснить, какой пользователь зарегистрирован, однако я не могу заставить его работать. Если я импортирую System.Security.Principal на моей главной странице, это не имеет значения:

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

Я могу получить к нему доступ, если попытаюсь в контроллере.

Любая идея, что мне нужно сделать?

Ответ 1

Как насчет HttpContext.Current.User.Identity?

Ответ 2

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

Ответ 3

Я думаю, что его работа

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

или

Page.User.Identity.Name.ToString()

Ответ 4

Вы можете использовать HttpContext.Current.User.Name, но вам нужно помнить, что код Master Page выполняется только после кода подчиненной страницы. Таким образом, вы можете использовать эту переменную, если не выполняете какую-либо логику безопасности на главной странице.

Ответ 5

Вы можете получить это от:

Context.User.Identity.Name