Need Help With Custom Profile Providers

Discussion in 'ASP .Net' started by pbd22, Dec 30, 2008.

  1. pbd22

    pbd22 Guest

    Hi.

    I am trying to roll my own profile provider and have some questions
    just so I make sure
    I understand what I am doing. I have followed the example on MSDN
    here:

    http://msdn.microsoft.com/en-us/library/8zs47k7y(VS.85).aspx

    Prior to reading about custom profiles, I had my own "Users" table in
    my database and
    wasn't sure what to do with this table after reading through the
    Custom Profile Provider
    example. I guessed that the table in the example, ProfileData, was
    meant to store
    the same kind of data I previously stored in my Users table so I moved
    all the columns
    from Users into ProfileData (Illustrated below in 'ProfileData').

    What I am unclear on is what is the point of of separating the
    Profiles table (below) from the
    ProfileData table per the MSDN example? I understand that Profiles
    serves as the PK table to which all related entities can map but what
    is so unique about its column fields that they cannot also be put in
    the ProfileData table?

    The way I am currently looking at it:

    1) When the user registers, a new record is created int he Profile
    table and his registration information is stored in the ProfileData
    table.

    2) When the user logs in, credentials are checked in ProfileData and
    then further information
    is stored as a session in Web.config (shown below - is this right?)
    for fast access.

    I feel like I am missing some of the basics here (am I?) and
    appreciate any help along those lines. Thanks in advance.

    TABLES:

    USE [DBDev]
    GO
    /****** Object: Table [dbo].[Profiles] Script Date: 12/30/2008
    16:42:56 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING OFF
    GO
    CREATE TABLE [dbo].[Profiles](
    [profileid] [int] IDENTITY(1,1) NOT NULL,
    [username] [varchar](50) COLLATE Latin1_General_CI_AI NOT NULL,
    [applicationname] [varchar](50) COLLATE Latin1_General_CI_AI NOT
    NULL,
    [isanonymous] [bit] NULL,
    [lastactivitydate] [datetime] NULL,
    [lastupdateddate] [datetime] NULL,
    PRIMARY KEY CLUSTERED
    (
    [profileid] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY],
    CONSTRAINT [PKProfiles] UNIQUE NONCLUSTERED
    (
    [username] ASC,
    [applicationname] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]

    GO
    SET ANSI_PADDING OFF

    ------------------------------------------------------------------------------------------------------------------------------------

    USE [DBDev]
    GO
    /****** Object: Table [dbo].[ProfileData] Script Date: 12/30/2008
    16:43:15 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING OFF
    GO
    CREATE TABLE [dbo].[ProfileData](
    [profileid] [int] NOT NULL,
    [lastname] [varchar](50) COLLATE Latin1_General_CI_AI NULL,
    [firstname] [varchar](50) COLLATE Latin1_General_CI_AI NULL,
    [varchar](50) COLLATE Latin1_General_CI_AI NOT NULL,
    [alternateemail] [varchar](50) COLLATE Latin1_General_CI_AI NULL,
    [password] [varchar](50) COLLATE Latin1_General_CI_AI NOT NULL,
    [securityquestion] [varchar](50) COLLATE Latin1_General_CI_AI NOT
    NULL,
    [securityanswer] [varchar](50) COLLATE Latin1_General_CI_AI NOT NULL,
    [zipcode] [int] NOT NULL,
    [birthmonth] [tinyint] NOT NULL,
    [birthday] [tinyint] NOT NULL,
    [birthyear] [int] NOT NULL,
    [gender] [varchar](10) COLLATE Latin1_General_CI_AI NULL,
    [city] [varchar](50) COLLATE Latin1_General_CI_AI NULL,
    [state] [varchar](50) COLLATE Latin1_General_CI_AI NULL,
    [country] [varchar](50) COLLATE Latin1_General_CI_AI NULL,
    [registerdate] [datetime] NOT NULL,
    [editdate] [datetime] NULL,
    [confirmed] [bit] NULL CONSTRAINT
    [DF__ProfileData__confirmed__4CC05EF3] DEFAULT ((0)),
    CONSTRAINT [PK_ProfileData] PRIMARY KEY CLUSTERED
    (
    [profileid] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY],
    CONSTRAINT [IX_email] UNIQUE NONCLUSTERED
    (
    [email] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]

    GO
    SET ANSI_PADDING OFF
    GO
    USE [TrezoroDBDev]
    GO
    ALTER TABLE [dbo].[ProfileData] WITH CHECK ADD CONSTRAINT
    [FKProfiles2] FOREIGN KEY([profileid])
    REFERENCES [dbo].[Profiles] ([profileid])

    -----------------------------------------------------------------------------------------------------------------------------------------

    WEB.CONFIG:

    <profile defaultProvider="DBDev">
    <providers>
    <clear />
    <add
    name="DBDev"
    type="ProfileProvider.Provider.ProfileProvider"
    connectionStringName="cDB"
    applicationName="MyApplication"
    />
    </providers>
    <properties>
    <add name="lastname"
    type="string"
    defaultValue="[null]"
    allowAnonymous="true" />
    <add name="firstname"
    type="string"
    defaultValue="[null]"
    allowAnonymous="true" />
    <add name="email"
    type="string"
    defaultValue="[null]"
    allowAnonymous="true" />
    <add name="securityquestion"
    type="string"
    defaultValue="[null]"
    allowAnonymous="true" />
    <add name="securityanswer"
    type="string"
    defaultValue="[null]"
    allowAnonymous="true" />
    <add name="zipcode"
    type="int"
    defaultValue="[null]"
    allowAnonymous="true" />
    <add name="birthmonth"
    type="int"
    defaultValue="[null]"
    allowAnonymous="true" />
    <add name="birthday"
    type="int"
    defaultValue="[null]"
    allowAnonymous="true" />
    <add name="birthyear"
    type="int"
    defaultValue="[null]"
    allowAnonymous="true" />
    <add name="gender"
    type="string"
    defaultValue="[null]"
    allowAnonymous="true" />
    <add name="city"
    type="string"
    defaultValue="[null]"
    allowAnonymous="true" />
    <add name="state"
    type="string"
    defaultValue="[null]"
    allowAnonymous="true" />
    <add name="country"
    type="string"
    defaultValue="[null]"
    allowAnonymous="true" />
    <add name="registerdate"
    type="datetime"
    defaultValue="[null]"
    allowAnonymous="true" />
    </properties>
    </profile>
     
    pbd22, Dec 30, 2008
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Jeff
    Replies:
    1
    Views:
    493
  2. Tullamore

    Help - custom providers and instances

    Tullamore, Oct 31, 2006, in forum: ASP .Net
    Replies:
    0
    Views:
    301
    Tullamore
    Oct 31, 2006
  3. Fernando Chilvarguer

    Profile Providers

    Fernando Chilvarguer, Feb 9, 2007, in forum: ASP .Net
    Replies:
    0
    Views:
    282
    Fernando Chilvarguer
    Feb 9, 2007
  4. Mike
    Replies:
    1
    Views:
    446
    Jon Paal [MSMD]
    Jun 27, 2007
  5. Roger Martin
    Replies:
    0
    Views:
    305
    Roger Martin
    May 28, 2008
Loading...

Share This Page