Thursday, October 30, 2008
Configure SSO for MOSS 2007
The steps i'm following what he wrote in his blog. its only for my future reference i'll come and see my blog incase he removes this valuable information.
There are seven main activities that we need to do:
1. Create the SSO service account -- This is the account that the service will run under.
2. Create the SSO groups -- These groups are used to control who has the ability to administer SSO (export the master key) and who has the ability to manage it (add/remove application definitions.)
3. Configure the SSO Service - Set SSO to start and get it to use the service account.
4. Configure SQL Server - Authorize the SSO service account to SQL server.
5. Manage SSO - Setup SSO in MOSS including the groups and the database.
6. Manage the encryption key -- Create the encryption key that will be used for protecting the username and password information on the system.
7. Manage settings for enterprise application definitions -- Define what initial applications SSO will be setup to manage passwords for.
We need to create an account for the "Microsoft Single Sign-on Service" (SSO Service) to run as. This account has to be a domain account that has local administrative privileges for the front end web servers, must be a member of the SharePoint group Farm Administrators, must have db_creator and security administrator roles in SQL Server, and must be a member of the group that is defined as SSO administrators.
Then add the user to the Domain Admins group( this is the missing link) in order to get the local administrator privileges requirement met.
# From the Start Menu click Administrative Tools-Active Directory Users and Computers
# In the left hand pane on the Users folder right click and select New-User from the menu that appears. If your organization places service accounts in a different organizational unit (OU) you can certainly add this account to that location.
# Enter the First Name (SharePoint SSO), Last Name (Service), and User logon name (SharePointSSOSvc) fields and click the Next button. You can name the account anything you want, however, these values make it clear what the account is used for.
#Enter the a password into the Password and Confirm password fields. Uncheck the User must change password at next logon checkbox. Check the User cannot change password and Password never expires checkboxes. Click the Next button. This sets the account up to be a service account.
# Click the Finish button.
# On the user that was just created, right click and select Properties.
#Click the Member Of tab.
#Click the Add button
# Enter the group name Domain Admins and click Check Names then click OK. As mentioned above, if you're using another group to provide local administrator access to the farm servers, use that group here.
# Click the OK button.
With the user account created and added to a group that will have administrative access to the farm servers. Next we need to create the groups that we'll add the users capable of managing SSO into.
Then Create the SSO Group.
rest of the steps are SKIPPED as it has to do with sharepoint configuration
The last step:
Manage Settings for Enterprise Application Definitions ( has to do in Sharepoint)
Sunday, October 5, 2008
Deploying asp.net user control in sharepoint
This is the same content that has been posted in http://bestofcyber.wordpress.com/2008/09/16/deploying-aspnet-usercontrolsascx-declared-in-custom-aspx-pages-into-moss-2007-sites/
Consider you are developing a custom application in asp.net out of the box SharePoint for the ease of UI development and deployment ,you might need to also create user controls and use into your aspx pages.
While you are deploying usercontrols(.ascx) file ,you can follow below steps to get the usercontrols rendering in the custom aspx pages I found this way more simple and working 100% fine.
1. Create a Directory called “UserControls” in the root of your SharePoint web site on the file system E.g. C:\Inetpub\wwwroot\wss\VirtualDirectories\80\UserControls
2. Open IIS manager and in the root of your SharePoint site create a VirtualDirectory called “_controls” and point it to that newly created directory.
3. Put your user control in that newly created directory on the filesystem.
4. Open the web.config file and add the following:
Also make sure the trustlevel entry is set to the below
5. In your ASPX page change the existing register directive with the following:
<%@ Register src=”~/_controls/SomeControl.ascx” TagName=”somecontrol” TagPrefix=”uc1″ %>
6. Run your ASPX page and your control should render correctly.
Tuesday, July 29, 2008
Dataformwebpart Server variables
http://dataformwebpart.com/2007/11/07/spd-2007-data-view-parameters-you-dont-know-about/
Thursday, July 10, 2008
Get Current User Email, Login, Display Name Details
The normal code which microsoft given fails:
SPWeb site = SPContext.Current.Web;Because most of the users who don't have access to All sites won't give details of their email by the code given. If you are wondering what is all about the difference between All users see below:
SPUser user = site.CurrentUser;
string DisplayName = user.Name;
string Login = user.LoginName;
string EMail = user.Email;
string User Notes = user.Notes;
SPWeb site = SPContext.Current.Web;The code gives 3 types of different user collection so i guess the user who logged in and didn't find his email by the code above belongs to one of this group.
SPUserCollection c1 = site.Users;
SPUserCollection c2 = site.AllUsers;
SPUserCollection c3 = site.SiteUsers;
The difference between these SPUserCollection is copied from MSDN.:
I used a basic way to get the current user using (context of control HTTPCONTEXT) Context.User.Identity.Name or Page.User.Identity.Name which does the same httpcontext.
After we get the current user login i can pass it to the magic of another Class in sharepoint object Model which brings the user details.
using Microsoft.SharePoint.Utilities;
SPWeb osite = SPContext.Current.Web;
SPPrincipalInfo prin = SPUtility.ResolvePrincipal(osite,Context.User.Identity.Name , SPPrincipalType.All, SPPrincipalSource.All, osite.AllUsers, false);
writer.Write(prin.Email);
using this method u can also search the user by their Email ID, or their Display name. its a cool method who does the search on multiple fields.
Tuesday, July 1, 2008
Use explicit casting instead of DataBinder.Eval
The DataBinder.Eval method uses .NET reflection to evaluate the arguments that are passed in and to return the results. Consider limiting the use of DataBinder.Eval during data binding operations in order to improve ASP.NET page performance. <tr> <td><%# DataBinder.Eval(Container.DataItem, "field1") %></td> <td><%# DataBinder.Eval(Container.DataItem, "field2") %></td> </tr> </ItemTemplate>
Consider the following ItemTemplate element within a Repeater control using DataBinder.Eval:
Using explicit casting offers better performance by avoiding the cost of .NET reflection. Cast the Container.DataItem as a DataRowView:
<ItemTemplate>
<tr>
<td><%# ((DataRowView)Container.DataItem)["field1"] %></td>
<td><%# ((DataRowView)Container.DataItem)["field2"] %></td>
</tr>
</ItemTemplate>
Thread Safe .NET Event Technique
public event EventHandler Updated = delegate { };
protected void UpdatePrice(string mySymbol, decimal newPrice, long newVolume)
{
_priceList[mySymbol] = newPrice;
_volumeList[mySymbol] = newVolume;
Updated(this, new MarketFeedEventArgs(mySymbol, newPrice, newVolume));
}
Because in case of multithreaded environment if the event updated is not subscribed or if null it. Removes the subscription from all the other event handler. So instead of making a new copy of event each time, we should initialize the events at the first case.
People normally use like this which is performance friendly but not good practice for multithreaded environ
public event EventHandler Updated;
protected void UpdatePrice(string mySymbol, decimal newPrice, long newVolume)
{
_priceList[mySymbol] = newPrice;
_volumeList[mySymbol] = newVolume;
if(Updated != null)
Updated(this, new MarketFeedEventArgs(mySymbol, newPrice, newVolume));
}
How to check email works without using SMTP
You can find your mails posted in the directory mentioned below after you send a mail by code.
<system.net>
<mailsettings><smtp deliverymethod="SpecifiedPickupDirectory"> <specifiedpickupdirectory pickupdirectorylocation="c:\Test\">
</smtp>
</mailsettings>
</SYSTEM.NET>
Source of this tip : http://dotnettipoftheday.org/tips/smtp-delivery-methodSpecifiedPickupDirectory.aspx