Altairis Profile provider   zodpovězená otázka

ASP.NET WebForms

zdravicko,

strucne a jasne:

1. problem s profile providerem, pridal som par stlpcov ako datum narodenia a podobne (web.config) a nasledne som upravil CreateUserWizard o dalsie polozky s profile provideru, takze otazka znie: mam tam este pisat nejaky kod do CreateUserWizard na ukladanie do tabulky Profiles?? ci to sa robi automaticky ? lebo mi do tabulky v DB nic neulozi

2. maju byt previazane tabulky Users a Profiles? (dal som to cez FK UserName)

PS: web.config je nastaveny spravne tam chyba nebude.

PRILOHA SQL table:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
go
CREATE TABLE dbo.[Users](
        UserId                  int IDENTITY(1,1)   NOT NULL,
        UserName                nvarchar(100)       NOT NULL,
        PasswordHash            char(86)            NOT NULL,
        PasswordSalt            char(5)             NOT NULL,
        Email                   nvarchar(100)       NOT NULL,
        Comment                 text                NULL,
        Enabled                 bit                 NOT NULL,
        DateCreated             datetime            NOT NULL,
        DateLastLogin           datetime            NULL,
        DateLastActivity        datetime            NULL,
        DateLastPasswordChange  datetime            NOT NULL,
         
        CONSTRAINT PK_Users PRIMARY KEY CLUSTERED (UserId ASC),
        CONSTRAINT IX_Users_UserName UNIQUE NONCLUSTERED (UserName ASC)
)
 
go
CREATE TABLE dbo.[Profiles] (
    [ProfileId]         int IDENTITY(1,1)   NOT NULL,
    [UserName]          nvarchar(100)       NOT NULL,
    [MotoGPNickName]    nvarchar(100)       NOT NULL,
    [FirstName]         nvarchar(32)        NULL,
    [LastName]          nvarchar(32)        NULL,
    [BirthDay]          Smalldatetime       NOT NULL,
    [IcqNumber]         nvarchar(9)         NULL,
    --[Email]               nvarchar(256)       NOT NULL,
    [Question]          nvarchar(256)       NOT NULL,
    [Answer]            nvarchar(128)       NOT NULL,
    [LastUpdate]        datetime            NOT NULL,
    [ShowPersonalInfo]  bit                 NOT NULL    DEFAULT(0),
 
    CONSTRAINT PK_Profiles PRIMARY KEY CLUSTERED (ProfileId ASC),
    CONSTRAINT FK_Profiles_Users FOREIGN KEY (UserName) REFERENCES dbo.[Users] (UserName) ON UPDATE CASCADE ON DELETE CASCADE,
    CONSTRAINT IX_Profiles_MotoGPNickName UNIQUE NONCLUSTERED (MotoGPNickName ASC)
)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

(sam si odpovedam na svoju otazku :D)takze som to po troch dnoch uz vyriesil ak by niekoho zaujimalo tak to tu radsej napisem...

1. doplnenie hodnot do CreateUserWizard (FirstName,...)

2. do EventHandledru (akcia na stlacenie buttonu, OnCreatedUser="CreateUserWizard1_CreatedUser") tlacitka Create User treba doplnit tento kod (code behind):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e) {
        string userName = CreateUserWizard1.UserName;
        ProfileCommon p = ProfileCommon.Create(userName) as ProfileCommon;
        //set params
        p.MotoGPNickName = (CreateUserWizardStep1.ContentTemplateContainer.FindControl("MotoGPNickName") as TextBox).Text;
        p.FirstName = (CreateUserWizardStep1.ContentTemplateContainer.FindControl("FirstName") as TextBox).Text;
        p.LastName = (CreateUserWizardStep1.ContentTemplateContainer.FindControl("LastName") as TextBox).Text;
        DateTime dt = DateTime.Now;
        DateTime.TryParse((CreateUserWizardStep1.ContentTemplateContainer.FindControl("BirthDay") as TextBox).Text, out dt);
        p.BirthDay = dt;
        p.IcqNumber = (CreateUserWizardStep1.ContentTemplateContainer.FindControl("IcqNumber") as TextBox).Text;
        p.Question = (CreateUserWizardStep1.ContentTemplateContainer.FindControl("Question") as TextBox).Text;
        p.Answer = (CreateUserWizardStep1.ContentTemplateContainer.FindControl("Answer") as TextBox).Text;
        p.ShowPersonalInfo = (CreateUserWizardStep1.ContentTemplateContainer.FindControl("PersonalInfo") as CheckBox).Checked;
 
        // insert data
        p.Save();
    }

3. spravne nastaveny web.config a to nasledovne:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<profile enabled="true" automaticSaveEnabled="false" defaultProvider="MyProfileProvider">
            <providers>
                <clear/>
                <add name="MyProfileProvider" type="Altairis.Web.Security.SimpleSqlProfileProvider, Altairis.Web.Security"
             connectionStringName="localConnection"
             tableName="Profiles"
             keyColumnName="UserName"
             lastUpdateColumnName="LastUpdate"/>
            </providers>
            <properties>
                <add name="MotoGPNickName" type="String" customProviderData="MotoGPNickName;nvarchar;100"/>
                <add name="FirstName" type="String" defaultValue="[null]" customProviderData="FirstName;nvarchar;32"/>
                <add name="LastName" type="String" defaultValue="[null]" customProviderData="LastName;nvarchar;32"/>
                <add name="BirthDay" type="DateTime" defaultValue="01.01.1990" customProviderData="BirthDay;smalldatetime"/>
                <add name="IcqNumber" type="String" defaultValue="[null]" customProviderData="IcqNumber;nvarchar;9"/>
                <add name="Question" type="String" customProviderData="Question;nvarchar;256"/>
                <add name="Answer" type="String" customProviderData="Answer;nvarchar;128"/>
                <add name="ShowPersonalInfo" type="Boolean" defaultValue="false" customProviderData="ShowPersonalInfo;bit"/>
            </properties>
        </profile>

dufam ze to niekomu na nieco bude okrem mna :D ... sia

nahlásit spamnahlásit spam 5 / 5 odpovědětodpovědět

Ahoj tak jsem použil ten tvůj návod ale nepustí mi to IISko na hostingu, co s tím???

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback