2010-10-09 3 views
5

Le contrôle LoginName affiche le nom d'utilisateur. Je voudrais afficher le nom complet de l'utilisateur connecté plutôt que le nom d'utilisateur. Voici mon code. Je n'arrive pas à accéder au contrôle LoginName dans le code derrière. Je me demande si c'est parce que le contrôle est en place.Afficher le nom complet au lieu du nom d'utilisateur dans le contrôle LoginName

ASPX Page:

<asp:loginview id="HeadLoginView" runat="server" enableviewstate="false"> 
    <AnonymousTemplate> 
     [ <a id="HeadLoginStatus" runat="server" href="login">Log In</a> ] 
    </AnonymousTemplate> 
    <LoggedInTemplate> 
     Welcome <span class="bold"> 
      <asp:LoginName ID="HeadLoginName" runat="server" /> 
     </span>! [ 
     <asp:LoginStatus ID="HeadLoginStatus" runat="server" 
      LogoutAction="Redirect" LogoutPageUrl="~/home" 
      LogoutText="Log Out" /> 
     ] 
    </LoggedInTemplate> 
</asp:loginview> 

S'il vous plaît code postal derrière des exemples en C# si possible ...

Répondre

12

j'ai pu comprendre une coupe courte:

LoginName loginName = HeadLoginView.FindControl("HeadLoginName") as LoginName; 

     if (loginName != null && session != null) 
     { 
      loginName.FormatString = "Full Name"; 
     } 

Ceci trouve le contrôle LoginName dans le LoginView, la valeur détourne en réglant FormatString. J'aimerais qu'il y ait une façon plus élégante de faire ça. Si quelqu'un sait, s'il vous plaît envoyez-le moi.

0

Le contrôle LoginView semble un peu automatique dans son comportement. Vous voudrez peut-être passer à l'utilisation de quelque chose de différent et prendre un contrôle différent sur l'expérience ...

Vous pouvez essayer le Login control à la place, pour voir si cela permet la flexibilité dont vous avez besoin. Par exemple son. UserName property est à la fois en lecture/écriture.

Login1.UserName = "MY REAL NAME"; 

Apparemment, il prend également en charge de nombreuses fonctionnalités via la syntaxe déclarative.

<asp:Login 
    AccessKey="string" 
    BackColor="color name|#dddddd" 
    BorderColor="color name|#dddddd" 
    BorderPadding="integer" 
    BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|Groove|Ridge| 
     Inset|Outset" 
    BorderWidth="size" 
    CreateUserIconUrl="uri" 
    CreateUserText="string" 
    CreateUserUrl="uri" 
    CssClass="string" 
    DestinationPageUrl="uri" 
    DisplayRememberMe="True|False" 
    Enabled="True|False" 
    EnableTheming="True|False" 
    EnableViewState="True|False" 
    FailureAction="Refresh|RedirectToLoginPage" 
    FailureText="string" 
    Font-Bold="True|False" 
    Font-Italic="True|False" 
    Font-Names="string" 
    Font-Overline="True|False" 
    Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|Medium| 
       Large|X-Large|XX-Large" 
    Font-Strikeout="True|False" 
    Font-Underline="True|False" 
    ForeColor="color name|#dddddd" 
    Height="size" 
    HelpPageIconUrl="uri" 
    HelpPageText="string" 
    HelpPageUrl="uri" 
    ID="string" 
    InstructionText="string" 
    LoginButtonImageUrl="uri" 
    LoginButtonText="string" 
    LoginButtonType="Button|Image|Link" 
    MembershipProvider="string" 
    OnAuthenticate="Authenticate event handler" 
    OnDataBinding="DataBinding event handler" 
    OnDisposed="Disposed event handler" 
    OnInit="Init event handler" 
    OnLoad="Load event handler" 
    OnLoggedIn="LoggedIn event handler" 
    OnLoggingIn="LoggingIn event handler" 
    OnLoginError="LoginError event handler" 
    OnPreRender="PreRender event handler" 
    OnUnload="Unload event handler" 
    Orientation="Horizontal|Vertical" 
    PasswordLabelText="string" 
    PasswordRecoveryIconUrl="uri" 
    PasswordRecoveryText="string" 
    PasswordRecoveryUrl="uri" 
    PasswordRequiredErrorMessage="string" 
    RememberMeSet="True|False" 
    RememberMeText="string" 
    runat="server" 
    SkinID="string" 
    Style="string" 
    TabIndex="integer" 
    TextLayout="TextOnLeft|TextOnTop" 
    TitleText="string" 
    ToolTip="string" 
    UserName="string" 
    UserNameLabelText="string" 
    UserNameRequiredErrorMessage="string" 
    Visible="True|False" 
    VisibleWhenLoggedIn="True|False" 
    Width="size" 
> 
     <CheckBoxStyle /> 
     <FailureTextStyle /> 
     <HyperLinkStyle /> 
     <InstructionTextStyle /> 
     <LabelStyle /> 
     <LayoutTemplate> 
      <!-- child controls --> 
     </LayoutTemplate> 
     <LoginButtonStyle /> 
     <TextBoxStyle /> 
     <TitleTextStyle /> 
     <ValidatorTextStyle /> 
</asp:Login> 
+0

J'utilise le contrôle LoginView avec un contrôle LoginName incorporé. Le problème est que ce contrôle n'affiche qu'un nom d'utilisateur et pas un nom complet ou un prénom amical de l'utilisateur. –

+0

Je suis assez sûr que le contrôle de connexion est pour l'authentification (entrée) et ne pas afficher. La définition de la propriété Username définit la valeur que vous souhaitez envoyer au serveur pour l'authentification. Corrigez-moi si je me trompe. –

+0

C'est juste. Vous pouvez essayer un autre type de contrôle de connexion, même un tiers peut fournir des fonctionnalités différentes. Le contrôle de connexion ASP.NET que j'ai mentionné semble accessible depuis le code-behind et vous n'aurez probablement pas le même problème de champ de nom d'utilisateur inaccessible pour le remplacement du nom d'utilisateur avec un nom complet, sauf si je ne comprends pas correctement la question. –

Questions connexes