Rammi.cz

Rammi.cz náhodný obrázek

Role Management .NET 2.0 beta 2

Květen 4th, 2005 · komentáře 2 · Programování

Po několika hodinách zkoušení jsem konečně zjistil jak nakonfigurovat role management ve webovém .NET 2.0 Beta 2 projektu na jiném než defaultním SQL.
Pokud chcete pro user a role management (také membership services) používat MsSQL server následujte tyto instrukce:

  • Pokud ještě nemáte vytvořenou databázi pro ukládání údajů o uživatelích, vytvořte ji.
  • Tuto databázi je třeba doplnit o tabulky a uložené procedury které jsou používány službami Membership. Toho dosáhnete spuštěním toolu aspnet_regsql.exe, který se nachází v adresáři .NETu (typicky: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50215). projděte všechny kroky spuštěného wizarda. Pokud budete mít problém s přihlášením do databáze, ujistěte se že uživatel ASPNET má přístupové práva do této databáze.
  • Pod rootem (configuration) souboru web.config vytvořte tuto strukturu:
    <connectionStrings>
        <remove name="LocalSqlServer" />
        <add name="LocalSqlServer" 
          connectionString="data source=127.0.0.1;Integrated Security=SSPI;Initial Catalog=JménoDatabáze"
          providerName="System.Data.SqlClient" />
      </connectionStrings>
    

    Zjistil jsem totiž, že pokud se pokoušíte použít jiný název connection stringu, tak ne všechno funguje – zejména webadmin tool, ale doufejme že to je jen neduh Beta verze.
    Řádek remove odstraňuje z paměti tento, v machine.config definovaný, connection string, a na dalším řádku jej nahradíme svým vlastním.

  • V system.web sekci je třeba povolit a nastavit roleManager
      <roleManager enabled="true" defaultProvider="DefaultRoleProvider">
        <providers>
          <add name="DefaultRoleProvider" 
               type="System.Web.Security.SqlRoleProvider"
               applicationName="/"
               connectionStringName="LocalSqlServer" />
        </providers>
      </roleManager>
    
  • A nakonec je třeba definovat ještě membership provider, taktéž v sekci system.web
    <membership defaultProvider="DefaultMembershipProvider">
            <providers>
              <add name="DefaultMembershipProvider" 
                   type="System.Web.Security.SqlMembershipProvider"
                   connectionStringName="LocalSqlServer"/>
          </providers>    
        </membership>
    

Toto je minimum potřebné k tomu abyste role management vůbec rozjeli, we web admin toolu pravděpodobně zjistíte že se nedají vytvořit uživatelé. Systém píše „change password“ – problém je v tom že w machine.config je nastaveno že defaultně musím být v heslu obsažena alespon jeden nealfanumerický znak (např. #, @, …).
Což je vzhledem k tomu že o tom UI neinformuje trošku hloupé. Tento požadavek můžete vypnout přidáním atributu

minRequiredNonalphanumericCharacters="0" 

do položky provideru rolemanagementu. Pokud máte nainstalován MSDN library k VS 2005 beta 2, tak tady najdete popis tohoto elementu:
ms-help://MS.VSCC.v80/MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.NETDEVFX.v20.en/dv_ASPNETgenref/html/27617d4a-205a-41f0-b2c3-a21aa223d2a9.htm

Tagy:

2 komentáře ↓

  • Rammi.cz » Personalization ASP.NET 2.0

    […] ání — Jiří Herník @ 09:26

    Minule jsem psal o tom jak “rozchodit” role management a dnes budu pokračovat podobným směrem. Pokud budete tento blog […]

  • raddimm

    Zdravim,
    cetl jsem tady clanek o aspnet (asi tento) 🙂 a mam takovy problem. vsechno funguje na localhost, ale jakmile to hodim na db ktera visi na hostingu (kde mam diky asp_sqlreg vytvorene tabulky) hodi to:

    EXECUTE permission denied on object ‚aspnet_CheckSchemaVersion‘, database ‚progressmedi‘, schema ‚dbo‘

    DIKY ZA RADU!!!

Co si myslíš ty?

Copyright Abago Holding s.r.o.,
všechna práva vyhrazena.
Navštivte také další projekty: Služby:  Digi Reality - Realitní vyhledávač | Ušetřím.cz - Vyhledávač cen | Inzerce Dýně.cz - Inzerce zdarma | Moderní svět - Nejen o technologiích
Zábava: PeckaSMS.cz - vyhrajte super ceny | 101her.cz - Online hry zdarma |
TOPlist