|
Hello everyone,
How do I automatically redirect someone back to a page he/she wishes to see before taken to login or signup page?
Case Study 1: I want to shop online and I was to checkout and pay for the product, but the site mandated it on me that I must register with them before I could proceed (I think it's for profile purpose) or simply sign in if I am an existing user. Then after that, I was taken back to my checkout page, made payment and went out.
Case Study 2: I launched this site, view forum post and click to read one but was redirected to login/signup page. After successful login, I was automatically redirected back to the post I wanted to read.
Case Study n...
How can I implement same in my asp.net application?
Thank you all for your usual support.
|
|
|
|
|
You may want to reword this along the lines of:
How do I automatically redirect a user back to the page they wished to see after being taken to a login or signup page?
If so there are a number of ways depending on how you've set it up. If, for instance, you use Forms authentication then it will handle it for you (do a search on Forms authentication). You could also use attributes to seek authentication, either using built in security or custom attributes, etc, etc.
IN ohter words, you'll have to be more specific about your requirement; what have you already tried?Tychotics: take us back to the moon
"Life, for ever dying to be born afresh, for ever young and eager, will presently stand upon this earth as upon a footstool, and stretch out its realm amidst the stars."
H. G. Wells
|
|
|
|
|
Realy, I haven't tried any method. But I am using Windows authentication. I create my own user database and coded their login, signup, etc... Because this is the most convenient way I can always achieve this.
Any further Ideas?
Regards
|
|
|
|
|
awedaonline wrote: Any further Ideas?
Yes, stop reinventing the wheel. Use the built-in login controls and authentication database if necessary. I know the language. I've read a book. - _Madmatt
|
|
|
|
|
Alright, I don't know how to achieve that. Please teach me the tricks. Note with my own created database and not aspnetdb.
Thanks for your responses.
|
|
|
|
|
Start here[^] and here[^] I know the language. I've read a book. - _Madmatt
|
|
|
|
|
Mark Nischalke wrote: Yes, stop reinventing the wheel.
That does not suit every occasion - it is wrong to tell people that. I've been on many projects where, for one reason or another, that was not considered suitable to our needs and we had to hand craft a solution that did suit.Tychotics: take us back to the moon
"Life, for ever dying to be born afresh, for ever young and eager, will presently stand upon this earth as upon a footstool, and stretch out its realm amidst the stars."
H. G. Wells
|
|
|
|
|
It is the appropriate response when implementing something that is already present in the framework. In this case authentication uses a provider model that can be extended to cover extenuating circimstance so again there is no need to reinvent what has already done. Redirecting to the appropriate page i s also provided via the built-in controls and model. I know the language. I've read a book. - _Madmatt
|
|
|
|
|
I fully undertand all that and have used it many times. But I've also not used it because we had other concerns or design issues or plain old bloody minded architects that didn't like it. Either way it is not the answer to everything.Tychotics: take us back to the moon
"Life, for ever dying to be born afresh, for ever young and eager, will presently stand upon this earth as upon a footstool, and stretch out its realm amidst the stars."
H. G. Wells
|
|
|
|
|
Nor is DIY I know the language. I've read a book. - _Madmatt
|
|
|
|
|
I didn't say it was. What is your problem? You're not right: it isn't the only answer and I already said that custom wasn't either.Tychotics: take us back to the moon
"Life, for ever dying to be born afresh, for ever young and eager, will presently stand upon this earth as upon a footstool, and stretch out its realm amidst the stars."
H. G. Wells
|
|
|
|
|
What the hell is your problem? You start off with "That does not suit every occasion - it is wrong to tell people that."
That was a very offensive attitude to begin an open discussion with.
Followed up with "Your're not right" shows a lack of respect for other viewpoints and the people who present them.
There is no right or wrong, we have choices. I stand by my comments that in this case the OP should not be creating a mechanism that already exists. You can disagree, but you don't have to be disagreable. I know the language. I've read a book. - _Madmatt
|
|
|
|
|
Mark Nischalke wrote: That does not suit every occasion - it is wrong to tell people that."
You found that offensive? Grow up: I thought that fairly polite. Take it howver you want, I suppose.
Mark Nischalke wrote: I stand by my comments that in this case the OP should not be creating a mechanism that already exists
Rubbish. There is always more than one way to skin a cat and just because MS give you something for free doesn't mean you have to use it.Tychotics: take us back to the moon
"Life, for ever dying to be born afresh, for ever young and eager, will presently stand upon this earth as upon a footstool, and stretch out its realm amidst the stars."
H. G. Wells
|
|
|
|
|
Mark Nischalke wrote: You can disagree, but you don't have to be disagreable.
Good advice - take it.Jon
"I don't think the human race will survive the next thousand years, unless we spread into space. There are too many accidents that can befall life on a single planet. But I'm an optimist. We will reach out to the stars." ~ Stephen Hawking,
Soap Box 1.0: the first, the original, reborn troll-less
|
|
|
|
|
If everything you do is custom then I might use Attributes to decorate the master page, if you have one, or every page other than the login page if you don't that just does:
1: Is this user logged in? (Could be accomplished by populating a session variable upon successful login).
2: Yes: allow access to any page. (You could also have stored the selected page in a session variable).
3: No: redirect to login.
Attributes are fairly simple to create so you can look that bit up: I'm sure there are plenty of articles on CP that will help.
I'm also sure there are other ways to do this and perhaps someone else can offer further suggestions.Tychotics: take us back to the moon
"Life, for ever dying to be born afresh, for ever young and eager, will presently stand upon this earth as upon a footstool, and stretch out its realm amidst the stars."
H. G. Wells
|
|
|
|
|
Thanks for this idea. It never came to my mind to store the selected page in a Session variable. I will do it and feedback you ASAP.
I am grateful.
|
|
|
|
|
Wow, I tried it but not getting it right.
I declared a Session("selectedPage") = "~/page.aspx" variable under the Page_Init event of the page.aspx page.
Under my masterpage, I checked :
If ((Session("selectedPage").ToString() <> "")) Then
Response.Redirect(Session("selectedPage").ToString())
Else
Response.Redirect("~/anotherPage.aspx")
End If
but I as redirected to the anotherPage.aspx after succesfull login which I started by selecting the page.aspx as my startup page.
What could have happened plz?
|
|
|
|
|
Okay@ let's pretend you have a site with a Master Page, Default.aspx, Links.aspx, Contacts.aspx and Login.aspx.
The only 2 pages that anyone can see without some form of authentication are Default and Login. If they try to access any other page they get redirected to LOgin if the Session variable that tracks their status is empty. If you create an attribute that checks for their status and redirects accordingly from the Master Page that should help to solve your issue. What you will also have to do is to, for example, maybe have some code underlying a menu click option that tracks the page they were trying to get to and pass that into the session variable.
See how you get on: I think you should be able to figure out the rest of it from here.Tychotics: take us back to the moon
"Life, for ever dying to be born afresh, for ever young and eager, will presently stand upon this earth as upon a footstool, and stretch out its realm amidst the stars."
H. G. Wells
|
|
|
|
|
Thanks a lot. but I don't seem to understand what and how to imlement that attribute you are saying. Do you mean a property?
|
|
|
|
|
I think you need to start figuring some of this out for yourself: there is a lot of information about attributes all over the web and especially within Code Project..Tychotics: take us back to the moon
"Life, for ever dying to be born afresh, for ever young and eager, will presently stand upon this earth as upon a footstool, and stretch out its realm amidst the stars."
H. G. Wells
|
|
|
|
|
As I've been trying to point out if you use the built-in mechanism all of this is handled for you, plus other benefits. I know the language. I've read a book. - _Madmatt
|
|
|
|
|
Step 1) When you redirect user to the Login page (i.e. Login.aspx) pass the current url in Query string.
i.e.
Response.Redirect("Login.aspx?PreviousPage=" + Request.AppRelativeCurrentExecutionFilePath.ToString());
Step 2) In the Login Page, after you authenticate user, Redirect the user back to the page in the query string.
i.e.
if(Request.QueryString["PreviousPage"] != null)
Response.Redirect(Request.QueryString["PreviousPage"].ToString());
else
Response.Redirect("Some where else, might be your products page etc...");
|
|
|
|
|
the same approach I have used in my project and found simple way to implement this. Cheers!!
Brij
|
|
|
|
|
Your opinion was helpful.
Thanks..
|
|
|
|
|
Passing the page that performed the redirect to your login would be quite easy. Just use a querystring.
e.g
default.aspx
String url = Page.Request.RawUrl;
Response.Redirect(String.Format(CultureInfo.InvariantCulture, "~/login.aspx?pp={0}", url));
login.aspx
if(Request.RawUrl.Contains("?pp="))
{
string previousPage = Request.QueryString["pp"]);
}
Once you have your value you could use the login control LoggedIn event
to redirect to you original page using the query string you have captured.
I know it's a chore but I heartily recommend getting a book on Asp.Net. Most beginners books will have plenty of information about this.
Good luck!JimBob SquarePants
*******************************************************************
"He took everything personally, including our royalties!"
David St.Hubbins, Spinal Tap about Ian Faith, their ex-manager
*******************************************************************
|
|
|
|