2012-03-08 4 views
-1

Я пытаюсь выполнить следующий скрипт:Получение имя пользователя, вошедшего в

Здесь LoginName1 является System.Web.UI.WebControls.LoginName. LoginName1 отображает имя пользователя на веб-странице просто отлично. Однако он не работает. Где я иду не так?

Вот полный код [последнее]:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site1.master" AutoEventWireup="true" 
    CodeBehind="~/Default.aspx.cs" Inherits="memberlogin.Default" %> 


<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
<script runat="server" > 
    public void redirect() 
    {// I have removed previous content - it JUST WONT REDIRECT THE PAGE 
     //String loginame = System.Web.HttpContext.Current.User.Identity.Name; 
     //if (loginame == "usertest") 
     Response.Redirect("Default.aspx"); 
     } 
</script> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent" > 
    <h1> 
     <span class="input">Welcome to the members-only page.</span> 
    </h1> 
    <h2> 
     Start Client Side Application. 
    </h2> 
         <asp:LoginView ID="LoginView1" runat="server"> 
       <AnonymousTemplate> 
        <span class="input">&nbsp;You are not logged in. Click the Login link to sign in</span> 
       </AnonymousTemplate> 
       <LoggedInTemplate> 
        <span class="input">You are logged in. Welcome, </span> 
       </LoggedInTemplate> 
      </asp:LoginView> 
      <asp:LoginName ID="LoginName1" runat="server" /> 
      &nbsp;&nbsp; 
      <table class="style1"> 
       <tr> 
        <td align="center" valign="middle"> 
      <br /> 
         <br /> 
         <br /> 
         <br /> 
         <br /> 
         <br /> 
         <br /> 
         <br /> 
         Click on This Image Link To Start The Application<br /> 
         <br /> 
         <asp:ImageButton OnClick="click" runat="server" ID="ImageButton1" Height="100px" 
          ImageUrl="~/Images/loader.jpg" PostBackUrl="~/Loading.aspx" /> 
         <br /> 
         <br /> 
         <br /> 
         <br /> 
         <br /> 
         <br /> 
         <br /> 
         <br /> 
         <br /> 
         <br /> 
         <br /> 
        </td> 
       </tr> 
      </table> 
      <asp:LoginStatus ID="LoginStatus1" runat="server" 
       LogoutAction="Redirect" BackColor="White" 
       Font-Underline="True" LogoutPageUrl="~/Default.aspx" /> 

</asp:Content> 
+2

Как насчет этого не работает? –

+0

Когда я перемещаю курсор в 'LoginName1', он говорит: «Этот член определен более одного раза. –

+0

Где вы вызываете перенаправление? – RQDQ

ответ

4

Вы пробовали получать имя от HttpContext.Current.User.Identity.Name?

Судя по контексту, я предполагаю, что LoginName1 является меткой или другим элементом управления .NET, у которого нет связанного с ним ViewState. Если это так, то код выше должен работать.

+0

Извините, я понял, что неправильно' LoginName1' является 'asp: LoginName', то есть' System.Web .UI.WebControls.LoginName1' ... –

0

System.Web.UI.Page.User.Identity.Name не является классом. System.Web.UI.Page является классом и User является собственностью IPrincipal, которая содержит имущество Identity типа IIdentity, которое содержит имущество Name типа string.

Факс: LoginName1 a string который содержит значение System.Web.UI.Page.User.Identity.Name? Или это элемент управления, который отображает это значение? В первом случае ваш код должен работать, в дальнейшем вам нужно будет использовать .Text или .Value, чтобы получить значение элемента управления.

+0

См. Мое редактирование. –

+0

Вы пробовали LoginName1.ToString()? –

+0

Он говорит 'Этот член определен более чем один раз –

Смежные вопросы