Last week end I found out the following videos and white papers about SharePoint configurations and operations. Check them out @ Advanced lectures and white papers


 
Categories: MOSS

It is a good practice to enable SSL on your web sites for security reasons. But there are times when you might not want to secure everything under an IIS Web Site because SSL carries with it some over-head that should be avoided.

Think about an ecommerce web site, such as www.amazon.com where there could be thousands of simultaneous users @ one point in time hitting the servers. One would want to conserve the processing cycles and use those cycles for serving the content instead of encrypting/decrypting SSL packets for the pages that really don't need SSL.

Also realize that a web site serves not only the dynamic content but also the static content such as CSS, JavaScript, images, etc. Using SSL for these types of files would be overkill for most, if not all, of the applications.

So what do we do? Well, enable SSL only on the resources (or pages) that require it. Following are some of the examples of the pages on which you would want to enable SSL:

  • Create / Maintain Account
  • Login
  • Change or Reset Password
  • Any other page that submits the sensitive data

Most of the developers don't know that it is possible to enable SSL on an individual file! What does that mean? That means you can keep a mix of http:// and https:// pages under your IIS Web Site (or Virtual directory for that matter).

The following list of steps walks you through the process of enabling SSL on a page in IIS 6.0. The sample project used in the walkthrough can be found here.

The following walkthrough also assumes that you have setup SSL on IIS server. See the following articles for more information about how to setup SSL on IIS.

There is couple of subtle-points that needs to be made, hence follow along the steps and pay special attention to the URLs and the behavior of the application.

Extract the attached zip file and create a virtual directory under IIS Web Site that has the SSL certificate installed on it.

The virtual directory on my machine looks like the following:

 

SSL not required on the IIS Web Site

Launch Inetmgr, right-click on the web site on which the SSL certificate has been imported, select Properties, go to the Directory Security tab and click on Edit button under the Secure communications sections.

This will take you to the following dialog-box which displays the SSL status of the web site. Notice that the Require secure channel (SSL) box is not checked.

Don't make any changes and dismiss all of the dialog-boxes. At this point in time, the IIS web site has the SSL certificate installed on it. No other changes to the configuration of the files have been made.

Browse files without configuring anything on the server

Browse both the Secure.aspx and NotSecure.aspx pages over HTTP. Both of the pages should run fine and you should see the following screens.

Now browse both of the files over HTTPS. On my machine I had setup HTTPS on port 8443, hence I had to specify that port in the URL. But if you have configured SSL on the standard port (which is 443), you don't have to specify the port in your URL.

So browsing pages over the secure connection yields the following output. (Disregard the Certificate Error message next to the URL – this is happening because the site URL specified in the certificate is different from the URL that I am using to browse the pages.)

Conclusion

As you can see, we have successfully browsed both of the pages over HTTP and HTTPS.

What does that mean?

That means:

  • Importing the SSL certificate on an IIS web site allows that web site's resources to be invoked over SSL, but this does not enforce the use of SSL.
  • The determination of whether or not to use SSL is made by the client (by using either the http:// or https:// prefix in the URL) and the server happily serves the content. The server does not have a say whether or not to use SSL.
  • The same file could be browsed using both the http:// and https:// in the URL.
  • It has not been demonstrated but checking the Require secure channel (SSL) check-box on the web-site itself would force all of the resources under that web site to be invoked over SSL which may not be a desirable behavior. You can check that box for the web-site and browse both of the pages over HTTP and HTTPS; this time around, you would not be able to browse pages over HTTP and would get an error from the server.

Require SSL for Secure.aspx page

This is not what we want! We want Secure.aspx page to use SSL all the time. We would have to forcefully require SSL for that page.

Select your virtual directory in Inetmgr, right click on the Secure.aspx page and select Properties. This will launch the Properties dialog-box for that file. On that dialog-box, click on the File Security tab and look @ the Secure communications section @ the bottom. This should look like the following:

Click on the Edit button and it will show you the following screen that you can use to enable SSL for that page.

Check the Require secure channel (SSL) box and click on OK. Don't change anything else on that dialog box. By doing that, we are forcing that SSL must be used while accessing the Secure.aspx page. Let's browse the Secure.aspx page over both the HTTP and HTTPS protocols.

Browsing the page over HTTP results in the HTTP error 403.4

As you can see, the web server has refused to serve the content because the client did not request content over HTTPS! Note that the similar request from the client to view the Secure.aspx page over HTTP had succeeded earlier because we had not forcefully required SSL for that page at that time, but after requiring SSL, the page can only be viewed securely.

Browsing the same page over HTTPS results in the following:

 

Conclusion

  • We can force SSL for the selected resources on the server. This need not be forced at the web-site level. All we need to do is import an SSL certificate on the website and then require SSL for those selected resources.
  • By the same token, we can require SSL for everything that lives under a virtual directory or folder for that matter.

So this should clarify some of the issues surrounding the concept of enabling SSL on selected resources.

Resources

Microsoft also recommends using SSL on selected pages. See the following for more information.

Improving ASP.NET Performance (read "Only Use SSL for Pages That Require It" section)

Checklist: ASP.NET Performance (Read "Security Considerations" section)

SSL Capacity Planning (read "Understanding SSL Performance" section)

Ensure that Secure Content is Served Over HTTPS Only

Information about working with Certificates in IIS 6.0

HOWTO: Use IIsWebFile to fine grain control IIS behavior

SSL Diagnostic Tool - This is a nifty tool for debugging SSL related issues.


 
Categories: IIS 6.0

I had a discussion with one of the developers about using SSL on web sites that use host headers. My practical experience with using SSL on such web sites had been successful in the past and my understanding is that it is possible to use SSL for such web sites but that developer thought otherwise.

I had used the following resources in the past for achieving that. I hope that clarifies the confusion about using SSL for the web sites that use host headers.

Configuring SSL Host Headers

Creating Multiple Sites Using Host Header Names (IIS 6.0)


 
Categories: IIS 6.0

I came across Software +Services Blueprints (aka S+S Blueprints) which is a good initiative from Microsoft. As the name implies, the blue prints consist of the guidance and sample implementations that have been developed using those guidance.

The most exciting S+S Blueprint is the one for SharePoint and can be found @ http://www.ssblueprints.net/sharepoint/; as of writing this post, the full blue print source code was not available, but you can still download code for the six artifacts shown on the home page.

Check out http://channel9.msdn.com/wiki/default.aspx/Channel9.SoftwarePlusServicesBlueprints for general information about S+S Blueprint.


 
Categories: MOSS | WSS

Last night I came across the following web site (http://www.visualstudiogallery.com/Default.aspx) which has a lot of Visual Studio Extensions available on it.

Like everyone else, I am a fan of "Free" software, so I went through all of the available add-ins and compiled the following list of "free but value-able" add-ins; check them out.

ASPX Edit Helper – very helpful tool if you are like me and code HTML code by hand.

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=b477bcc0-c68a-4435-9fd2-66ac32f83901

DotNetNuke WebControls Control Suite – consists of custom web controls such as Tree View, Menu, etc.

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=9908f00b-eea8-412f-88c2-b9386d82d604

Automating WPF Databinding with Visual Studio 2008

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=f141a456-4bdf-4cfa-a24f-7da99ef26152

CodeKeep – lets you store and search the code snippets.

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=69db6577-c031-4f53-8fb8-e553301353ca

ComponentOne IntelliSpell Community Edition – spell checking in Visual Studio!

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=40474c7c-f887-48cb-ba07-c098ff7b86da

Flat Solution Explorer – shows a non-hierarchical view of the solution items.

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=1f8a03d0-afa7-4588-b9dc-09adb381b224

HyperAddin – adding hyperlinks in your source code

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=49b1c42b-424b-44ce-9bb1-22b4ec91e577

PInvoke.net – creates the signatures of the Windows API.

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=9ca9d544-05d2-487b-ab49-31851483c1cc

PowerCommands for Visual Studio 2008 – adds some really useful commands in the Visual Studio UI.

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=df3f0c30-3d37-4e06-9ef8-3bff3508be31

Resource Refactoring Tool – extracts the literal strings from your source and moves those into resource files.

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=6ebe98b6-c344-4929-857c-6afebf51f4af

SharePoint SmartTemplates for Visual Studio 2008

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=7db7a141-2939-4cee-b62c-97732d3e2522

SlickEdit Gadgets for Visual Studio 2008

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=0253125f-285f-4490-ab2a-0f96011f20a6

SourceCode Outliner Powertoy – ever wanted to see the types and members of your code in tree format? This puppy provides just that!

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=bea9ed59-8857-4032-9666-9af1c1a33969

StickyNotes – sticky notes for your project and project items!

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=d467cd03-8393-4172-a25a-7a586577f4fb

XSLT Profiler Add-in – if you work with XSLT files, then you got to have it.

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=a6a4ab2b-89aa-45ab-bbbf-3e84ce44af82

GhostDoc – for .NET documentation

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=46a20578-f0d5-4b1e-b55d-f001a6345748

Web Service Software Factory Modeling Edition – create web services that follow the standard architecture and design patterns.

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=a2930549-4a26-4cd8-bc0d-5d12a74e5841

WCF Designer – the name says it all.

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=a21f8e20-1787-4d22-a5ef-8e8371d2e6f5

DB Connection Visualizer – pretty slick! Run SQL code while debugging

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=dc336e26-4617-4bcd-8fb4-5071c9ea030f

Visual Studio Tip of the Day Browser

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=9974a567-2d61-4eeb-9b92-bae86cc45210

VSWindowManager

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=cbf3965c-1286-4f16-8bc7-050ddf2c594a

NUnit integration in Visual Studio 2005

http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=cd382d01-524c-49fa-9cf8-a6d9ca3d3f25


 

I have been exploring WSS and MOSS 2007 on Windows Server 2008 and have been using the following resource extensively for the installation and troubleshooting.

Check it out @ Windows Server 2008 Resource Center for SharePoint Products and Technologies


 
Categories: MOSS | WSS

Microsoft has included the SP1 changes to the WSS and MOSS SDKs and the same can be downloaded from the following URLs:

WSS SDK

MOSS SDK


 
Categories: MOSS | WSS