The HTML is like:
<asp:Login ID="LoginUser" runat="server" EnableViewState="false" RenderOuterTable="false" OnLoggedIn="LoginUser_LoggedIn"
OnLoginError="LoginUser_LoginError">
</asp:Login>
On LoginUser_LoggedIn
event I am setting the destination URL like:
LoginUser.DestinationPageUrl = "~/mycustompage.aspx";
FormsAuthentication.RedirectFromLoginPage(LoginUser.UserName, true);
Here when there is NO ReturnUrl
in page URL then it is redirecting to "~/mycustompage.aspx" page but if there is any ReturnUrl specified in the URL then it is redirecting to the ReturnUrl page.
I always want to redirect to "~/mycustompage.aspx" page whether ReturnUrl is there or not. How to achieve this?
Many many thanks in advance!
DestinationPageUrl
is the default destination page after Login.
?ReturnUrl
is stronger than DestinationPageUrl
so, if it is set it wins.
Response.Redirect
in LoginUser_LoggedIn
is stronger than ReturnUrl
so, if you want to override ReturnUrl
you must use this code:
void LoginUser_LoggedIn(Object sender, EventArgs e)
{
Response.Redirect("~/mycustompage.aspx");
....
}
DestinationPageUrl
should be set in the aspx page
<asp:Login DestinationPageUrl="~/mycustompage.aspx" ... />
or in Page_Load
event to work properly.
void PageLoad(Object sender, EventArgs e)
{
LoginUser.DestinationPageUrl = "~/mycustompage.aspx";
....
}
If you must change the destination page after login (in example if the page changes depending on the user or the user's role) you must use Server.trasfer()
ore Response.Redirect()
.
void LoginUser_LoggedIn(Object sender, EventArgs e)
{
Response.Redirect("~/mycustompage.aspx");
....
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With