2006-12-22

Extranät med SQL membership provider

Här kommer en hyfsat kortfattad instruktion för hur man sätter WSS med formulärbaserad inloggning och ASP.Net 2.0 SQL Membership Provider. Instruktionerna är mest menade som minnesanteckningar; de förutsätter grundläggande kunskap om IIS 6.0, SSL och ASP.Net 2.0 provider model.

Genom att utöka (extend) en Web Appication får du två eller flera IIS-webbar som visar samma innehåll ur SharePoint. Du kan ge IIS-webbarna olika egenskaper; i det här fallet låter jag den första IIS-webben använda integrerad säkerhet, medan den utökade IIS-webben får formulärbaserad inloggning med ASP.Net 2.0 Membership Provider.

Instruktionerna är mest menade som minnesanteckningar; de förutsätter grundläggande kunskap om IIS 6.0, SSL, ASP.Net 20 och Membership Providers.

Förberedelse: Installera WSS eller MOSS

Installera server och se till att det finns en Web Application med integrerad säkerhet (NTML eller Kerberos). Verifiera att det finns en Site Collection och att du kan logga in.

Skapa en membership-databas

Generera script för att skapa en ASP.Net membership database:
aspnet_regsql -A all -d Moss_AspNetDb -sqlexportonly <filename>

Eventuellt räcker det med -A mp eller -A m.

Kör filen i SQL Server Management Studio, verifiera att databasen ser korrekt ut.

Lägg till servicekontot för IIS-webbarnas application pool till databasrollen AspNet_Membership_BasicAccess. Lägg till ditt eget domänkonto till rollen AspNet_Membership_FullAccess.

Anslut till databasen och skapa en användare

Skapa ett nytt Web Site-projekt i Visual Studio 2005, och konfigurera det med inställningar för membership providern.

Lägg till sektionen connection strings under noden configuration:

<!--Connection strings for membership provider-->

<connectionStrings>

  <add name="Moss_AspNetDb_ConnectionString"

    connectionString="Data Source=DBSERVER;Initial Catalog=Moss_AspNetDb;Integrated Security=True"

    providerName="System.Data.SqlClient" />

</connectionStrings>

Lägg till sektionen membership section under noden system.web:

<!-- membership provider -->

<membership defaultProvider="Extranet">

  <providers>

    <add name="Extranet"

      type="System.Web.Security.SqlMembershipProvider, System.Web,Version=2.0.0.0,

        Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

      connectionStringName="Moss_AspNetDb_ConnectionString"

      enablePasswordRetrieval="false"

      enablePasswordReset="true"

      requiresQuestionAndAnswer="false"

      applicationName="MossExtranet"

      requiresUniqueEmail="true"

      passwordFormat="Hashed"

      maxInvalidPasswordAttempts="5"

      minRequiredPasswordLength="8"

      minRequiredNonalphanumericCharacters="1"

      passwordAttemptWindow="10"

      passwordStrengthRegularExpression="" />

  </providers>

</membership>

Angående val av providernamn: man kan givetvis använda standardnamnet AspNetSqlMembershipProvider. Jag valde att istället använda ”Extranet” eftersom användarkontonamnen får detta som prefix i SharePoint (till exempel Extranet:TestUser).

Application name kan lämnas default ("/"). Men om du, som jag, ändrar till något annat, så måste det vara lika för alla ASP.Net providers i din applikation, annars får du problem.

Testa att inställningarna fungerar genom att starta ASP.Net Configuration (ASP.Net Web Site Administration Tool). Skapa en testanavändare.

Nu är databasen och providern förberedd. Dags att titta på IIS och SharePoint.

Utöka din Web Application

Skapa en ny IIS Web Site och förbered den med SSL med hjälp av IIS Administration tools.

I Central Administration, fliken Application Management, klicka på Create or extend Web application, och välj Extend an existing Web application.

  • Välj den Web Application som ska utökas.
  • Välj din nya IIS Web Site som ska användas för utökningen (eller skapa ny)
  • Port 443 för SSL.
  • Behåll SSL.
  • Kontrollera URL:en, samt ange zon Extranet. Detta kommer att lägga till URL:en som en ”alternate access mapping”, dvs en alternativ adress för din Web Application.

Klicka Ok. Verifiera att du kan logga in på den nya adressen, och att du ser samma innehåll som på den första adressen.

Nu har du två IIS-webbar som visar samma SharePoint-site på två olika URL:er.

Uppdatera web.config båda IIS-webbarna

Lägg till inställningar för SQL membership providern i båda IIS-webbarna. Varför inte bara i den utökade IIS-webben där formulärinloggning ska användas? Jo, för den IIS-webben med integrerad säkerhet kommer att användas för att hantera SharePoint-grupper – och då behöver du söka och lägga till användare från membership providern. Därför måste även den IIS-webben få dessa inställningar.

Tag inställarna i web.config från Web Site-projektet och lägg till i web.config för båda IIS-webbarna (ja, ja,  sluta tjata).

Uppdatera elementet PeoplePickerWildCards med namnet på providern:

<PeoplePickerWildcards>

  <clear />

  <add key="Extranet" value="%" />

</PeoplePickerWildcards>

Eventuellt kan man lägga till en role-provider också, men det har inte jag gjort i det här fallet.

Konfigurera web.config för Central Administration

Det rekommenderas att man lägger till inställningar för membership providern även i Central Administration. Detta är nödvändigt i de fall man centralt behöver tilldela behörigheter eller en policy till en användare från providern.

Jag hoppade över detta tills vidare.

Konfigurera autentiseringsmetod i SharePoint

I Central administration, fliken Application Management, klicka på Authentication Providers.

Ange rätt webbapplikation och klicka på zonen Extranet.

Ändra Authentication Type till ”Forms” och ange ”Extranet” som Membership provider name. Spara inställningarna.

Test

Logga in på den första IIS-webben som vanligt. Ge behörigheter till testanvändaren du skapade tidigare. Det ska fungera att hitta användaren med people pickern.

Öppna den utökade IIS-webben. Du ska nu se SharePoints inloggningsformulär. Verifiera att det går att logga in med testanvändaren.

Administration av användare

Vidareutveckla din Web Site i Visual Studio med sidor för att administrera användare.  Placera webbapplikationen under Central Administration (http://CentralAdminSite:port/MyUserAdministration).

Pretty simple and straight forward.

God Jul.

Technorati tags: ,

2006-12-16

VS 2005 SP1

Läs och klicka vidare till downloads här:
Visual Studio 2005 Service Pack 1 (SP1)

Technorati tags:

2006-12-12

MOSS och WSS på svenska

Pontus tipsar om att MOSS nu finns på svenska. Hittar den inte på MSDN ännu, men en trial version finns på Microsoft Downloads. Det ska bli intressant att se hur översättarna har lyckats den här gången... (SPS 2003 var ju inte klockren på alla punkter).

Svenskt språkpaket för WSS finns också att hämta: WSS 3.0 Language Pack - Svenska

Observera att man numera ska skilja på language packs för WSS respektive MOSS:
Language packs are available to install on WSS only, MOSS, MOSS for Search, Office Forms Server, and Project Server installations. For MOSS, MOSS for Search, Forms Server, and Project Server installations, the Office server products Language Pack (a.k.a. ServerLanguagePack) needs to be installed; this will take care of all sites. The WSS Language Packs (a.k.a. SharePointLanguagePack) are for WSS stand-alone installations. (SharePoint Team Blog)

Då inställer sig genast frågan: när kommer language packs för MOSS?

Technorati tags: , ,

2006-12-11

WebParts och Features...

För dig som håller på med webparts och VSeWSS: tag inte för givet att webparts och features är en självklar kombination, även om det kan verka så när du använder VSeWSS och får en feature på köpet.

Precis som Maurice Prather påpekar i Visual Studio Extensions for WSS - connecting the dots correctly så är features och webparts inte direkt relaterade. Enkelt uttryckt: om koden/assemblyt är installerad på servern, och web.config rätt konfad med SafeControl, så kommer webparten att exekvera i webpartsidan oavsett om din feature är aktiverad eller ej.

Jag är inte helt säker på best practices här, men i första hand skulle jag nog sikta på att göra ett Solution Package med en eller flera webparts, men utan någon feature involverad. Dessutom är det nog klokt att begränsa antal site features, om inte annat för att det blir trångt i gränssnittet.

Förresten, finns det något skrivet om max antal features i en site? (Blink, blink Stefan)

Technorati tags: , , ,

Källkoden till MOSS AspMenu

MS har släppt källkoden för klassen AspMenu, som är en ärver från ASP.Net 2.0 klassen Menu. AspMenu fixar några problem med ASP.Net 2.0 Menu:
  1. If the mouse pointer happens to be hovering over a menu item that exposes a fly-out as the page is loading, it is possible that an error dialog will appear stating: "Internet Explorer cannot open the Internet site, Operation aborted" and a blank page will be shown upon clicking OK. It seems that the problem arises from attempting to append to the DOM before it is properly initialized.
  2. If SSL termination is employed on a site with a menu, users will be greeted with “This page contains both secure and nonsecure items. Do you want to display the nonsecure items?” when hovering over a menu item which exposes fly-outs. (http://support.microsoft.com/?id=910444)
  3. In right-to-left locales, the fly-out indicator arrow still points from left-to-right.

AspMeny har i objektmodellen av misstag blivit sealed, vilket hindrar egna anpassningar. Så nu finns alltså koden att ladda hem under namnet MossMenu: http://blogs.msdn.com/sharepoint/attachment/1193926.ashx

Originalartikeln från SharePoint Team Blog här:
Customizing the WSS 3.0/MOSS 2007 Menu Control - MossMenu source code released

Technorati tags: , ,

2006-12-05

Office 2007 Virtual Labs

Mer utbildning från Microsoft - virtuella laborationer:

It's simple-no complex setup or installation is required to try out 2007 Microsoft Office system. You get a downloadable manual and a 90-minute block of time for each module. You can sign up for additional 90-minute blocks anytime.

2007 Microsoft Office System

Windows SharePoint Services 3.0

Office SharePoint Server 2007


Technorati tags: , , , ,