CodeIgniter session issue? - codeigniter

I have a website developed in CodeIgniter MVC framework.
I have data and that is editable multiple times by the admin and the admin and general users can view the edit history.
My code as follows :
History
( here item is my controller, history is my method and $item_id is the only parameter passed to the history method )
When I click on the history link it open in a new tab and works fine on chrome, Mozila Firefox, Safari, but when I open it in IE the session is destroyed.

Check whether you are creating an object of a controller in any
view.
That controller required authentication / login to get access.

Related

Session gets overridden on opening a new tab in IE in mvc

I have a home page url http://localhost:3443/home1
In the index action of home1 I am having a session["Home"]=Home1.
I am having another home page url http://localhost:3443/home2
There i have a session session["Home"]=Home2.
Now the context is for some user the landing page is home1. So if they click on home button on the menu or or do any such activity they should land into home1.
For another set of users they should land into home 2 for whatever activity they do which leads to the home page.
Now the menu.it is a ascx control
Here we are checking the session value is home1 or home2.
Based on that we are redirecting the user to the desired landing page.
Now the problem that I am facing is when we copy
http://localhost:3443/home1 to another tab e.g. tab2 and from there we change it into home2 and then do some activity. And then come back to tab1, what happens the value gets overridden it taken the home2 session. Which leads to the wrong landing page on click of home link in the menu. Do you have any solutions for this problem?
I hope i have correctly explained the problem if not please let me know,I will explain further.
Session is for the connection which will include both tabs (for example why you can login to stackoverflow on one tab and then if you open a second tab you are still logged in)
As #Skuld mentioned, the session is for user connection to the site so if the user goes to another page he or she is allowed to go they can open this in a new tab keeping the original tab open, if these are form pages you might want to look at 14 AntiForgeryToken. also i noticed you said this happens in IE does this also happen in Chrome? if so you might want to look to see if IE is excepting cookies. you can add roles to the session and then authorize those roles to home1 or home 2 from your controller, you should be authorizing users and roles to pages in your code not within your session. its hard to help any more without any code to look at.
Hope this gets you on the right track.

Redirecting issues with spring and springmobile

I'm building a website using Spring and the SpringMobile extension.
I've configured the LiteDeviceDelegatingViewResolver with mobilePrefix = m/, tabletPrefix = t/ and enableFallback = true, so that, whenever a dedicated mobile (or tablet) view isn't available, the "normal" (desktop site) view is served.
The site has several sections and subsections. For instance, there's a Products section and several Categories within it.
Currently, there isn't a landing page for Products, so I redirect the user to the first Category. In other words, when the link to /products is clicked, the corresponding #Controller method redirects to /products/category1 (by returning "redirect:/products/category1"); then, the method mapped to /products/category1, serves the view (by returning "viewname").
This works as expected when using the desktop site. However, in the mobile site, whenever I try to browse to /products, I get automatically redirected to /m/products by SpringMobile (which is fine), but then my #Controller gets into action, and, instead of being eventually redirected to /m/products/category1, strangely I get redirected to /m/products/m//products/category1.
Any ideas on why is this happening, and on how to achieve the expected behavior?
P.S.: If I navigate directly to /m/products/category1, the desktop view (the fallback) is properly shown.
Well, it turns out this was a bug in SpringMobile(MOBILE-70, MOBILE-78) which was fixed in version 1.1.0.RC1. It also affected forward: redirection.
I've updated my project dependencies, and the issues appear to be gone for good.

asp.net mvc3 formauthentication,custom role provider-Jquery auto load tabs not working..

I am creating dynamically loading tabs using jquery Ui tabs in my ASP.NET mvc3 project.
Here i have a product page. The product page contains left menus like Customer,Address,Contact,etc..
Here my process is when i click one my left menus, the tab created dynamically with Grid records.
And,
I'm creating a custom role provider and I set a Authorize attribute specifying a role in my controller and it's working just fine, like this:
[Authorize(Roles="SuperAdmin")]
public class SuperAdminController : Controller
...
If one user doens't have access to this controller, And click one of my left menu means,
he's redirected to login page. Its also working fine.
The problem is after the user logged in it didn't redirect the proper page in tab content area.
If my problem not understandable means please let me know..
Thanks Advance...
If you carefully check the URL in the browser, you will see that the URL does not change when you load something by Ajax. That is the point of Ajax actually, you do not load the whole page, right?
Now as the state is not saved when you try to load the content using Ajax, your redirect URL is only the page you loaded initially. That is why you cannot go back to the tab you wanted to load.

Is it possible to maintain different sessions (users) in different window tabs using Spring 2.5?

We have a requirement where support for different users in different tabs of a browser window. How can we achieve this in Spring 2.5? The application is based on Users, where users will have their own agents and articles. An internal user should be able to login to different user accounts in different tabs at same time and manipulate their data. Any help is much appreciated.
A browser's cookie store does not distinguish between different windows or tabs when deciding what cookies to send. So a cookie based approach won't help.
My suggestion for an alternative would be to have a hidden "userName" parameter that is passed back and forth as a URL query parameter for all requests from a given tab or window. You could finesse the setting of the parameter in browser requests by using some Javascript to add a hidden parameter to each of the HTML forms in the page just loaded. The parameter value would be snarffed from the query string of the current page URL. You'd just need to make sure that all pages included stuff in the header to load the JS and run it when the page load completed.
Generally speaking, no, because all of the tabs within the browser window share the same cookies.
One way to do it would be use multiple domain names all pointing at the same app. Each domain name would have its own set of cookies. You would need to have some way of switching to a new domain name after you open a new tab.
How about, have a set of bookmark toolbar bookmarks, each corresponding to a different domain name. Control-click on the bookmark and it opens in a new tab. You could provide the users links in your navigation to the different domains that they can drag onto their toolbar.
Depending on what browsers your users are using you could get even slicker - in some browsers Javascript window.open() opens a new tab. You could have the JS compute the new domain name before the window.open().

Browser Back Button Handling in Ajax Based Application

Similar questions have been asked on SO, but I am still looking for a solution and not a workaround.
I am working on an Ajax based application and when the user clicks on the Browser Back Button it takes the user to the login page(every page after the login page is ajax loaded). Apparently, this is not what the user expected.
We recommended using Bread Crumbs to the client
*Page One >> Page Two >> Page Three*
but the client insists that they prefer to use the Browser Back Button. Is there a way where it is possible to somehow embed the Bread Crumb links to the Browser Cache...in other words, clicking the back button invokes the same actions which clicking the Bread Crumb links would?
Regards,
SB
You could use the RSH (reallysimplehistory) javascript library: http://code.google.com/p/reallysimplehistory/

Resources