次のようなカスタム ログイン コントロールを含む asp.net Web ページがあります。
<div id="login-box-name" style="margin-top: 20px;">
User Name:</div>
<div id="login-box-field" style="margin-top: 20px;">
<asp:TextBox ID="username" runat="server" CssClass="form-login"></asp:TextBox>
</div>
<div id="login-box-name">
Password:</div>
<div id="login-box-field">
<asp:TextBox ID="password" runat="server" CssClass="form-login" TextMode="Password"></asp:TextBox>
</div>
<br />
<span class="login-box-options">
<input type="checkbox" name="1" value="1">
Remember Me</span>
<br />
<br />
<asp:ImageButton ID="loginbtn" runat="server" ImageUrl="images/login-btn.png"
onclick="loginbtn_Click" />
次のようになります。
および「loginbtn_Click」で:
if(Membership.ValidateUser(username.Text,password.Text))
{
var user = Membership.GetUser(username.Text);
var userid = user.ProviderUserKey;
Session["UserID"] = userid;
Response.Redirect("~/Default.aspx");
}
「ログイン ビュー コントロール」は次のようになります。
<li>
<asp:LoginView ID="LoginView1" runat="server">
<RoleGroups>
<asp:RoleGroup Roles="Admins">
<ContentTemplate>
<a href="ControlPanel.aspx">Control Panel</a>
</ContentTemplate>
</asp:RoleGroup>
<asp:RoleGroup Roles="Users">
</asp:RoleGroup>
</RoleGroups>
</asp:LoginView>
</li>
しかし、私の問題は、管理者が「ログインビュー」コントロールにログインした後、「コントロールパネル」という名前のリンクが表示されないことです。これは、ログイン用に作成したカスタムコントロールまたは e.Authenticated = true; を逃したためです。 。または、他の何か??