Using SharePoint subsites and audience to target content... how? - sharepoint

I would like to show different tabs in the top navigation of a SharePoint site depending on what 'Audience' the user is in. I can do this fine for pages but for subsites I cannot find an option. Googling reveals a work around, hiding the subsite and adding a link to the subsite URL.
There has to be a better way than this!

The only way to do this is by actually using Usergroups in Sharepoint. Audiences are nothing more than a form of display:none; like in CSS. If you know the URL, you still can get access. SPWeb knows only about allowing security objects (SPUSer / SPGroup) access to it...

Related

How to add an application page to a site in SharePoint?

I am an experienced .NET Developer acting as interim SharePoint Developer, and am new to SharePoint. After determining that I need to go with an application page instead of a site page for a new project due to it's complexity and need of custom code behind. Before developing the entire solution, I wanted to tie up the loose ends of my understanding of application page deployments. I need to add this page as a URL on the left side of a Site Collection page (kind of like what happens when adding a subsite to a site page.) I have read about the modules, which seems extremely hacky to me. There must be a better way to develkop a custom page on top of SharePoint without the page being accessible to anyone on the entire site.
EDIT
The application I am wanting to develop on top of SharePoint exists purely for data entry and reporting purposes.
Have you considered using a Webpart?
With a visual webpart which is essencially a usercontrol wrapped in a webpart you can add as much complexity as you want and you also have code behind to hook to events etc.
The benefit of using a webpart is that you can then drop it on a page, and use all OOB sharepoint access controls.
You mention that you want to develop a data entry reporting app. So something you can do is to create a subsite. Look all access to modify pages except to owners. Create all your screens by adding pages to the subsite and dropping webparts on it with the logic you require for each screen.
Also make sure you deploy the werbparts via a web feature that only is activated in your subsite, this way the webparts are only available in that particular subsite.

Sharepoint page level security

Another SharePoint question from myself!
I've created a subsite and from within Sharepoint designer I've created a new aspx page, all nice and simple so far. I can't seem to find where I can change the security on this new page, only site admins can view the page and everyone else gets access denied.
It doesn't seem to inherit the permissions from the parent and I can't see where to change the security settings!
Please help, I'm sure it's something simple!
Thanks
Dan
You've placed your ASPX file in a 'bad' place. It doesn't sit where the normal security structures for SharePoint work so you won't be able to set its item level permissions (because it is not an 'item'). This is the danger of giving people SharePoint Designer ;)
Personally I think your page belongs in the _layouts folder somewhere since it seems to be an admin page. In there you could simply secure it by a call like:
SPUtility.EnsureSiteAdminAccess();
Either you can:
Put your page in a library so you can set item level permissions to it
Create a custom control that allows you to call the code above for any page
Move the page to _layouts
From SharePoint, you should be able to navigate to where you stored your new aspx page (probably in one of your Document Libraries). From that location you can either change the permission of the Document Library, or manage the permissions of an individual aspx page.
Please note that it is best practice to set permissions at the Site Collection level and allow everything under the Site Collection to inherit permissions.

In SharePoint, can I control what users see on the page programatically?

I have a SharePoint Wiki that I'm permitting anonymous users read-only access to. However I'd like to make it so that the "Edit-History-Incoming Links" toolbar at the top vanishes if the user accesses the site so they don't get curious about that link, but a logged in editor is allowed access. Is there any easy way to permit this? Thanks!
Look into wrapping whatever renders the links (perhaps on the masterpage) with a SPSecurityTrimmedControl using SharePoint Designer:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spsecuritytrimmedcontrol.aspx

What are all the hidden list URL's for WSS 3.0 and MOSS?

For example, I have a MOSS publishing page where a user added a web part and I'm unable to remove that web part due to how the layout is rendered. I cant access the small drop down menu to "delete" the web part.
I know there is a ton of unpublished list views that exist and was wondering if we could get a comprehensive list of them here, and maybe find the one that will also solve my problem.
Hey for removing a webpart, you can just append the query string Contents=1 to the webpart page url.
i.e. "http://localhost/sites/SiteCollection/default.aspx?Contents=1" will show you the webpart maintenence page for the webpart page "http://localhost/sites/SiteCollection/default.aspx". Here you can remove the webparts.
From Heather Solomon's blog:
http://www.heathersolomon.com/blog/articles/sp07urls.aspx
Is there some way to make a wiki here?

Create SharePoint web page outside of document library

I'm reasonably new to SharePoint 2007 and trying to move from an ASP.NET to SharePoint way of thinking has been an interesting experience!
I would like to create a page at the same level as the default.aspx page in a subsite. The "SharePoint way" of doing things involves putting the page into a document library. I am reluctant to do this as the breadcrumb navigation of the page then includes the name of the libarary but I would like the library to be transparent to the user.
I can create a page in the right place in SharePoint designer but I can't find a way to use a SharePoint template. I have tried copying the default.aspx page, but the navigation linkes are not updated.
Am I missing something or can someone suggest a solution?
I see what you are saying. I would like to share my thoughts on how I will do it.
If the Breadcrumb is your only reason why you want to move to a different than lib, the I recommend you to override the ContentPlaceholder that has the BreadCrumb in your Page, so that BreadCrumb wont be there. But URL will be there for the User to Guess ./DocLib/default.aspx.
And if the reason to hide the document library is to make sure that you don't want to allow the user to get into the Lib and change something. I recommend you strip out the permission from the Document Lib and give all the user ReadOnly and add the user with more right who you thing will need to edit the pages.
And finally you wanted to it in a Place, you can try deploying them as a Feature that will provision the pages as Ghostable rather then GhostableInLibray.
While 1,3 cab be packaged in a WSP. 2 one needs bit of a Manual / custom Code if you are trying to automate the process.
Steps to create Ghostable pages you can refer to this
It doesn't seem to be possible. Subsites can be used to be categorise content by topic, but they can't be used very much.

Resources