comment faire pour afficher le nom d'utilisateur dans le nom de connexion de contrôle
J'ai une page maître qui détient le loginview contenu qui apparaît sur toutes les pages basées sur la page principale. j'ai un nom d'utilisateur contrôle également imbriqués dans le loginview pour afficher le nom de l'utilisateur lorsqu'ils sont connectés. le code de la loginview à partir de la page principale est affichée comme suit:
<div class="loginView">
<asp:LoginView ID="MasterLoginView" runat="server">
<LoggedInTemplate>
Welcome <span class="bold"><asp:LoginName ID="HeadLoginName" runat="server" />
<asp:Label ID="userNameLabel" runat="server" Text="Label"></asp:Label></span>!
[ <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="~/Logout.aspx"/> ]
<%--Welcome:
<span class="bold"><asp:LoginName ID="MasterLoginName" runat="server" /> </span>!--%>
</LoggedInTemplate>
<AnonymousTemplate>
Welcome: Guest
[ <a href="~/Account/Login.aspx" ID="HeadLoginStatus" runat="server">Log In</a> ]
</AnonymousTemplate>
</asp:LoginView>
<%-- [ <asp:LoginStatus ID="MasterLoginStatus" runat="server" LogoutAction="Redirect" LogoutPageUrl="~/Logout.aspx" /> ] --%>
</div>
Depuis VS2010 lance avec une valeur par défaut de la page de login dans le dossier des comptes, je ne pensais pas qu'il est nécessaire de créer une page de connexion, donc j'ai simplement utilisé la même page de connexion. veuillez trouver le code pour le contrôle de connexion ci-dessous:
<asp:Login ID="LoginUser" runat="server" EnableViewState="false" RenderOuterTable="false">
<LayoutTemplate>
<span class="failureNotification">
<asp:Literal ID="FailureText" runat="server"></asp:Literal>
</span>
<asp:ValidationSummary ID="LoginUserValidationSummary" runat="server" CssClass="failureNotification"
ValidationGroup="LoginUserValidationGroup"/>
<div class="accountInfo">
<fieldset class="login">
<legend style="text-align:left; font-size:1.2em; color:White;">Account Information</legend>
<p style="text-align:left; font-size:1.2em; color:White;">
<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">User ID:</asp:Label>
<asp:TextBox ID="UserName" runat="server" CssClass="textEntry"></asp:TextBox>
<asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"
CssClass="failureNotification" ErrorMessage="User ID is required." ToolTip="User ID field is required."
ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
</p>
<p style="text-align:left; font-size:1.2em; color:White;">
<asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label>
<asp:TextBox ID="Password" runat="server" CssClass="passwordEntry"
TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password"
CssClass="failureNotification" ErrorMessage="Password is required." ToolTip="Password is required."
ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
</p>
<p style="text-align:left; font-size:1.2em; color:White;">
<asp:CheckBox ID="RememberMe" runat="server"/>
<asp:Label ID="RememberMeLabel" runat="server" AssociatedControlID="RememberMe" CssClass="inline">Keep me logged in</asp:Label>
</p>
</fieldset>
<p class="submitButton">
<asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Log In"
ValidationGroup="LoginUserValidationGroup" onclick="LoginButton_Click"/>
</p>
</div>
</LayoutTemplate>
</asp:Login>
J'ai ensuite écrit mon propre code pour l'authentification depuis que j'ai eu ma propre base de données. le message suivant s'affiche le code dans la connexion des boutons cliquez sur l'événement.:
public partial class Login : System.Web.UI.Page
{
//create string objects
string userIDStr, pwrdStr;
protected void LoginButton_Click(object sender, EventArgs e)
{
//assign textbox items to string objects
userIDStr = LoginUser.UserName.ToString();
pwrdStr = LoginUser.Password.ToString();
//SQL connection string
string strConn;
strConn = WebConfigurationManager.ConnectionStrings["CMSSQL3ConnectionString"].ConnectionString;
SqlConnection Conn = new SqlConnection(strConn);
//SqlDataSource CSMDataSource = new SqlDataSource();
//CSMDataSource.ConnectionString = ConfigurationManager.ConnectionStrings["CMSSQL3ConnectionString"].ToString();
//SQL select statement for comparison
string sqlUserData;
sqlUserData = "SELECT StaffID, StaffPassword, StaffFName, StaffLName, StaffType FROM Staffs";
sqlUserData += " WHERE (StaffID ='" + userIDStr + "')";
sqlUserData += " AND (StaffPassword ='" + pwrdStr + "')";
SqlCommand com = new SqlCommand(sqlUserData, Conn);
SqlDataReader rdr;
string usrdesc;
string lname;
string fname;
string staffname;
try
{
//string CurrentData;
//CurrentData = (string)com.ExecuteScalar();
Conn.Open();
rdr = com.ExecuteReader();
rdr.Read();
usrdesc = (string)rdr["StaffType"];
fname = (string)rdr["StaffFName"];
lname = (string)rdr["StaffLName"];
staffname = lname.ToString() + " " + fname.ToString();
LoginUser.UserName = staffname.ToString();
rdr.Close();
if (usrdesc.ToLower() == "administrator")
{
Response.Redirect("~/CaseAdmin.aspx", false);
}
else if (usrdesc.ToLower() == "manager")
{
Response.Redirect("~/CaseManager.aspx", false);
}
else if (usrdesc.ToLower() == "investigator")
{
Response.Redirect("~/Investigator.aspx", false);
}
else
{
Response.Redirect("~/Default.aspx", false);
}
}
catch(Exception ex)
{
string script = "<script>alert('" + ex.Message + "');</script>";
}
finally
{
Conn.Close();
}
}
Mon authentification fonctionne parfaitement et la page est redirigé vers la destination désigné. Cependant, la connexion ne pas afficher le nom des utilisateurs. en fait je ne peux pas comprendre comment passer le nom d'utilisateurs que j'avais choisi à partir de la base de données pour le nom de connexion contrôle à afficher.
de prendre un coup d'oeil étroit, j'ai aussi remarqué la déconnexion du texte qui doit être affiché après le succès du journal de ne pas montrer. qui laisse me demandais si le loggedin modèle de contrôle sur la masterpage même incendies, ou encore le modèle anonyme de contrôle qui maintient l'affichage.?
Comment puis-je obtenir que cela fonctionne comme prévu? S'il vous plaît aider....
OriginalL'auteur Selase | 2011-01-10
Vous devez vous connecter pour publier un commentaire.
Ce que je sais, c'est que les contrôles de Connexion sont liés à Extraire des données à partir du fournisseur d'appartenances.
Mais puisque vous utilisez votre propre Système de Connexion. Il ne peut pas faire des contrôles de connexion pour afficher les données.
Si vous souhaitez autoriser les Contrôles de Connexion pour afficher automatiquement les données, puis Utiliser les Catégories de Membres
http://msdn.microsoft.com/en-us/library/tw292whz.aspx
ou si vous voulez avoir votre propre système de Connexion Puis Créer un fournisseur d'appartenances Personnalisé par la mise en Œuvre de la Classe Abstraite MembershipProvider. heres une bonne ressource sur que
http://www.asp.net/general/videos/how-do-i-create-a-custom-membership-provider
Une autre façon est d'utilisateur mise à jour Manuellement les informations sur les contrôles si vous ne souhaitez pas utiliser le fournisseur d'appartenances..
OriginalL'auteur Shekhar_Pro
J'ai juste eu ce même problème. À l'aide de l'authentification par Formulaires et similaires l'installation de l'OP.
Pour résoudre ce que je n'ai la suite de mon application:
puis de définir l'identifiant de connexion:
J'ai de la suite dans mon web.config:
Désolé pour répondre à un vieux post, mais ma recherche pour des réponses m'a conduit ici jusqu'à ce que je l'ai découvert par moi-même...
OriginalL'auteur s.bramblet