No, it's not a dirty term.
FBA = Forms Based Authentication - it's a Sharepoint thing.
I've been tasked with creating an extranet for the Board at the regional library organization that I work for.
It's been an education, to say the least.
We are using a separated isolated server to host the extranet with a pristine uncluttered version of Windows Sharepoint Services (WSS) 3.0. Typically when implemented as an intranet, WSS uses windows authentication in conjunction with Active Directory (AD.). When implemented as an extranet, there are security issues with potentially exposing AD to the outside world, so we seek a different means of authenticating users in an extranet. This does of course assume that we still need to authenticate users of the extranet and that we are not simply throwing it open to the world.
The easiest (relatively speaking) alternative means of authentication vs. windows authentication is FBA - Forms Based Authentication. There are some things that are given up when we go this route - most notably a significant level of the integration features that make WSS so appealing for intranet use. However we still retain significant functionality that makes the overall endeavor worthwhile.
To date, while trying to implement FBA, I seem to have run across something that is either so widely known that no one has seen fit to document it, or that is rarely enough encountered that no one has documented it yet.
First some clarification of some confusing points. A basic standalone default installation of WSS 3.0 uses Windows Internal Database (WID) as the underlying data store. WID is a modified instance of SQL Server Express Edition (SSEE) that has some limitations and special characteristics. This is basically the only instance in which WID is used with WSS/Sharepoint. A default standalone installation of Microsoft Office Sharepoint Server (MOSS)(the expensive version of WSS) uses SSEE.
WID, as used for WSS 3.0, does not have some of the limitations of SSEE as used in MOSS. For instance, SSEE has a 4gb size limitation on a db when used with MOSS as well as some limitations on processor and RAM usage. While it is not clear whether there are any limitations on processor and RAM use with WID, it is definite that there are no size limitations on WID databases used with WSS.
However, WID is significantly locked down compared with SSEE. It can not be used by other applications, and there are no managment tools included in the default installation of WSS. The SSEE management tool, SQL Server Management Studio Express can be used to view and edit some very limited features of a WID. However, the process of connecting to a WID is far from intuitive - rather than using a conventional "[name of server]\[name of database]" connection string, it is actually necessary to use a named pipe "\\.\pipe\mssql$microsoft##ssee\sql\query" as the server name to connect to an instance of WID.
Additionally, and this is the issue that really prompted the writing of this post, the limitations of WID when it comes to other applications seems to throw a very big wrench into the works of FBA.
A conventional implementation of FBA will take advantage of the grunt work already done in asp.net2.0 and utilize the Membership, Role Management, and Personalization services. To use these features, we must use aspnet_regsql.exe to create a db to hold the data associated with these services.
However, WID does not seem to allow this db to be created. It appears to work, but an error message is displayed by aspnet_regsql.exe while trying to create the database which refers to SQL error 33003, and to "unable to execute DDL statement".
While the db appears to exist afterwards, it is devoid of content tables and cannot be populated with data in any way.
In essence, it woudl seem that if you wish to use FBA with a default installation of WSS 3.0 with WID, you cannot do it without also installing SSEE to run alongside of WID for the sole purpose of providing the db needed by the authentication provider.
Thursday, April 24, 2008
Monday, February 18, 2008
stuff I need to get for apartment and where to get it from....
Textiles:
-towels
-sheets
Bathroom:
-shower curtain (real canadian)
Closets:
-closet organizer kits
-rubbermaid configurations (real canadian)
Kitchen:
-frying pans (paderno, London Drugs)
-stools for breakfast bar
-freezer
-place settings, bowls
-tablemats
-cutting boards
Furniture:
-table and chairs (Trevor? Ikea? Ungers?)
-couch
-ottoman
-club chair
-computer desk
-bookcases
-end/side tables
Appliances:
-freezer
-vacuum
Bedroom:
-closet organizer
-dresser? (Ikea Hemnes)
-bed frame
-bedside tables
Living Room:
-lamps
-area rug
Electronics:
-tv
-tv stand
STORES TO REMEMBER:
-Ikea
-Real Canadian
-MTF
-Kitchen Corner/Ming Wo
-restaurant supply store
-Rob's Furniture, 1395 United Blvd, Coquitlam (also in Langley)
-LazyBoy, Langley Bypass
-Couch Potato, Langley Bypass
-Ungers, South Fraser Way, Abbotsford
-Valley Direct Furniture, 19853 Fraser Highway, Langley
-Craigslist and Kijiji
-
-
Bathroom:
-
Closets:
-
-rubbermaid configurations (real canadian)
Kitchen:
-frying pans (paderno, London Drugs)
-
-freezer
-place settings, bowls
-tablemats
-cutting boards
Furniture:
-
-
-
-club chair
-
-bookcases
-end/side tables
Appliances:
-freezer
-
Bedroom:
-
-dresser? (Ikea Hemnes)
-bed frame
-bedside tables
Living Room:
-lamps
-area rug
Electronics:
-
-
STORES TO REMEMBER:
-Ikea
-Real Canadian
-MTF
-Kitchen Corner/Ming Wo
-restaurant supply store
-Rob's Furniture, 1395 United Blvd, Coquitlam (also in Langley)
-LazyBoy, Langley Bypass
-Couch Potato, Langley Bypass
-Ungers, South Fraser Way, Abbotsford
-Valley Direct Furniture, 19853 Fraser Highway, Langley
-Craigslist and Kijiji
Thursday, November 22, 2007
Off-Topic but seasonal: Christmas wish list...
Asus EEE:
dinkiest damn computer you ever saw...
Wishlist at Library Thing:
librarything
Looks like you have to be a member at librarything to see the list, so instead you can see my chapters wishlist, which is roughly the same:
jason's chapters wishlist
iPod Nano
black, 8 gb
iPod Touch
instead of a nano, this would be really cool...
xbox360 games
halo 3
need for speed prostreet
the orange box
bioshock
project gotham racing 4
comfy chairs x 2
from UA - not necessarily these ones but in this style. It's gotta be comfy! or
from lazyboy or
this is the front-runner - also from lazyboy
salt cellar
alton brown salt cellar
instant read digital thermometer
another alton brown thing
safety razor
merkur progress safety razor
blades:
feather double edged safety razor blades
"my own place stuff"
cutlery
pots/pans
sheets/towels
couch
table + chairs
tv/dvd player/amplifier/speakers/cable box
vacuum cleaner
bed frame - hopen from ikea
dresser/wardrobe
freezer/microwave
*********************************
New stuff as of December 4th:
Yoga membership:
Bikram Yoga Abbotsford
Apollo membership fees
ongoing membership fees
Mandolin from Lee Valley
Mandolin
or a cheaper one:
mandolin from Paul's Finest
Mortar and Pestle
low profile mortar and pestle
Jamie Oliver flavor shaker
flavor shaker
thestick
stiff stick or power stick
Blade Runner
complete collectors edition
dinkiest damn computer you ever saw...
Wishlist at Library Thing:
librarything
Looks like you have to be a member at librarything to see the list, so instead you can see my chapters wishlist, which is roughly the same:
jason's chapters wishlist
iPod Nano
black, 8 gb
iPod Touch
instead of a nano, this would be really cool...
xbox360 games
halo 3
need for speed prostreet
the orange box
bioshock
project gotham racing 4
comfy chairs x 2
from UA - not necessarily these ones but in this style. It's gotta be comfy! or
from lazyboy or
this is the front-runner - also from lazyboy
salt cellar
alton brown salt cellar
instant read digital thermometer
another alton brown thing
safety razor
merkur progress safety razor
blades:
feather double edged safety razor blades
"my own place stuff"
cutlery
pots/pans
sheets/towels
couch
table + chairs
tv/dvd player/amplifier/speakers/cable box
vacuum cleaner
bed frame - hopen from ikea
dresser/wardrobe
freezer/microwave
*********************************
New stuff as of December 4th:
Yoga membership:
Bikram Yoga Abbotsford
Apollo membership fees
ongoing membership fees
Mandolin from Lee Valley
Mandolin
or a cheaper one:
mandolin from Paul's Finest
Mortar and Pestle
low profile mortar and pestle
Jamie Oliver flavor shaker
flavor shaker
thestick
stiff stick or power stick
Blade Runner
complete collectors edition
Thursday, November 1, 2007
undefined is null
Doing a "very bad thing", as according to Microsoft, often has consequences. The other day I tried to add a column to a list in the Sharepoint site I am developing. The form failed, with an error message that "undefined was null".
Huh?
Not one of the more informative messages you could get. Until I started to think it through a little bit. Not only was a variable lacking content ("null"), but the variable itself was missing ("undefined"). This put me on the thread of a passing mention in the article I had based some of my Sharepoint hackery on.
This article was "One Master to Rule Them All", which proposed and illustrated a means of redirecting requests for application.master in WSS and MOSS from the stock file to your own customized version.
In the article, David Wise mentioned that you should, in your customized application.master file:
Once I changed the file to put the contentplaceholder immediately after the tag, adding the custom column to the list worked just fine.
Phew. I didn't have to go back to square one with the site design like I feared I might when I first ran into this error.
Huh?
Not one of the more informative messages you could get. Until I started to think it through a little bit. Not only was a variable lacking content ("null"), but the variable itself was missing ("undefined"). This put me on the thread of a passing mention in the article I had based some of my Sharepoint hackery on.
This article was "One Master to Rule Them All", which proposed and illustrated a means of redirecting requests for application.master in WSS and MOSS from the stock file to your own customized version.
In the article, David Wise mentioned that you should, in your customized application.master file:
"Throw any ContentPlaceHolders that you are not using in a hidden DIV at the bottom of the page - but before the closing FORM tag (the only exception to this seems to be "PlaceHolderUtilityContent" which goes in after the closing form tag)..."Once I tracked down this article, which was the one I vaguely remembered having a warning about placement of a particular contentplaceholder on an application.master page, I reviewed my own application.master page and found that, yes indeedy, I had put the placeholderutilitycontent contentplaceholder in the hidden div rather than immediately after the form closing tag.
Once I changed the file to put the contentplaceholder immediately after the tag, adding the custom column to the list worked just fine.
Phew. I didn't have to go back to square one with the site design like I feared I might when I first ran into this error.
Subscribe to:
Posts (Atom)