任何人都可以向我提供“如何在登录后将用户重定向到特定页面”的示例“uisng asp.net角色提供程序。
在我的登录页面上,我实现了ILogOnView,但它只将用户重定向到主页而不是我在web.config文件中指定的页面。以下是我在web.config文件中使用的代码。
Logon.aspx的代码
<asp:Login ID="Login1" runat="server" DestinationPageUrl="Templates.aspx" OnAuthenticate="Login1_Authenticate">
</asp:Login>
<forms
cookieless="UseCookies"
defaultUrl="Templates.aspx"
loginUrl="LogOn.aspx"
protection="All"
timeout="2880">
</forms>
public partial class LogOn : System.Web.UI.Page, ILogOnView
{
private LogOnPresenter presenter;
protected void Page_Load(object sender, EventArgs e)
{
presenter = LogOnPresenter.Create(this);
}
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
if (Membership.ValidateUser(Login1.UserName, Login1.Password) == true)
{
Login1.Visible = true;
Session["user"] = User.Identity.Name;
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, true);
}
else
{
Response.Write("Invalid Login");
}
}
public void Redirect(string targetUrl)
{
//Response.Redirect("Templates.aspx");
}
protected void Login1_LoggedIn(object sender, EventArgs e)
{
Response.Redirect(Login1.DestinationPageUrl);
}
}
欢迎任何建议。 谢谢&amp;的问候,
答案 0 :(得分:1)
如果您使用的是ASP:LOGIN控件,则可以指定“DestinationPageUrl”,这是登录成功后向用户显示的目标页面。该控件将驻留在“〜/ LogOn.aspx”
<asp:Login ID="Login1" runat="server" DestinationPageUrl="~/Default.aspx" CssClass="membershipcontrol" />
并将其添加到您的代码中:
Public Partial Class LogOn
Inherits System.Web.UI.Page
Protected Sub Login1Function(ByVal sender As Object, ByVal e As System.EventArgs) Handles Login1.LoggedIn
Response.Redirect(Login1.DestinationPageUrl)
End Sub
End Class
编辑:
好的,您使用以下方法明确重定向第17行的用户
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, true);
如果您希望将它们发送到静态位置,则可以使用此选项:
Response.Redirect(Login1.DestinationPageUrl);