Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

I have seen a similiar project, but I want to know if a better way to accomplish this.

I am working with a SharePoint Foundation environment. Enterprise would like to have a stock ticker of company on portal page. Some users hitting the page are allowed to access external internet sites while others can only access intranet (portal) site. How can I utilize a stock ticker API with little to no managed code so that these users can still see the company stock ticker? Would impersonation be the only solution here?

share|improve this question
    
I would say you do not have much choice - impersonation seems like the way to go. –  Matt Mar 5 '13 at 22:20

2 Answers 2

up vote 1 down vote accepted

This question comes up a lot and the easiest and most reliable solution that I've found (so far) is to create some timed process such as a Timer Job or PowerShell Script run via Scheduled Task that periodically access the internet and pulls down the ticker information and then saves that into a SharePoint list. You then create your web part and simply read the stock data from the list. This way, it doesn't matter if the user has access to the internet or not as the data is saved in SharePoint.

You could even get really crazy and do things like letting users specify their own stocks to watch (and the backend process would fetch those as well) or even save multiple stock price updates to the list and graph them over time.

share|improve this answer
    
This is very similiar to what I had seen before. I guess the question would be how "real time" should this be since it will require a SPTimer job to run for the frequency end user would want ticker to update. –  JuanTrev Mar 5 '13 at 22:02
    
That would depend on the frequency of the service you are getting stock data from. In my experience, we poll it, and cache it ~ and update roughly every 15 minutes. –  Quinn Johns Mar 5 '13 at 22:05
    
Agreed. If "real time" is required, then either the 1) user must have an internet connection or 2) a custom web part is needed that will call the service on behalf of the user at the time the page is rendered or 3) a custom web service is created that can be called from the client that will in turn fetch the data from the Internet. All options involve some form of delay, even if only a few seconds. –  Dave Wise Mar 5 '13 at 22:15

You could manually code a BCS model that queries the external data and presents it as an external list. This can have an approved user account that has internet access go out and query the extenal data, or use secure store, then all internal users just query the external list.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.