ASP.NET LoginUser.DestinationPageUrl not working properly
asp.net, login-control
Solution
`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");
....
}
Problem
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!