Přidání vlastností registrace (Profile)   otázka

ASP.NET WebForms

Dobrý den, rád bych požádal o pomoc s přidáváním doplňujících informací o uživatelích přes profile provider. Postupoval jsem dle Vašeho návodu na blogu s použitím providera od p. Valáška, ale nyní jsem zpět u původních vestavěných providerů.

Pro přidávání uživatelů využívám CreateUserWizard, do kterého přidávám textová pole konfigurovaná v web.config metodou

<add name="CompanyName"/>

v sekci properties.

Pokud v události

Protected Sub CreateUserWizard1_CreatedUser(ByVal sender As Object, ByVal e As System.EventArgs)

přiřadím proměnné

Profile.CompanyName = CompanyName.Text

prvku TextBox přidaného do CreateUserWizard, dostanu po spuštění chybovou hlášku (tuto vlastnost nelze použít u anonymních uživatelů).

Když v souboru web.config nastavím u

<add name="CompanyName" allowAnonymous="true"/>

,pak se mi po spuštění žádná chyba nezobrazuje, ale v tabulce User se mi přidá jak zadaný uživatel tak také další anonymní uživatel a v tabulce profile se mi zobrazí jméno firmy zadané do pole TextBox, jen nevím k jakému uživateli je přiřazeno, protože se neshoduje z Id uživatele z tabulky User.

Moc prosím o pomoc a děkuji

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

Já používám toto:

    Protected Sub CreateUserWizard1_CreatedUser(ByVal sender As Object, ByVal e As System.EventArgs) Handles CreateUserWizard1.CreatedUser
        Dim PB As ProfileBase = ProfileBase.Create(CreateUserWizard1.UserName.ToString)

        PB.SetPropertyValue("FirstName", FirstNameBox.Text)
        PB.SetPropertyValue("LastName", LastNameBox.Text)
        PB.Save()

    End Sub



    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.Expires = 60
        Response.ExpiresAbsolute = DateTime.Now.AddDays(-1D)
        Response.AddHeader("pragma", "no-cache")
        Response.AddHeader("cache-control", "private")
        Response.CacheControl = "no-cache"

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

Dobrý den, děkuji za pomoc ale ještě se mi to nepodařilo dotáhnout do konce.

Pokud jsem přidal TextBox pro zadání Jména do CreateUserWizard(až v druhém kroku),

<asp:WizardStep ID="WizardStep1" runat="server>
  <asp:TextBox ID="FirstNameBox" runat="server"></asp:TextBox>
</asp:WizardStep>

tak mi přidání uživatele částečně fungovalo (přidal se mi do tabulky membrship, user i profile se shodným UserId, ale jeho hodnota v poli PropertyValueString kam mělo být zadané jméno uloženo zůstala prázdá.

Poté jsem zkusil pole pro zadání jména vložit přímo do prvního kroku CreateUserWizardStep v sekci ContentTemplate, ale zde se mi hlásí chyba FirstNameBox není deklarována.

Prosím o případnou pomoc s vložením TextBoxu pro zadání hodnoty.

Předem děkuji

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

Tak si nejsem jist, jestli vám správně rozumím, vzhledem k těm anonymním uživatelům. Nicméně k mému příkladu přidávám zdroják i z createUserWizard

            <WizardSteps>
            <asp:WizardStep ID="WizardSTep1" runat="server" Title="Ukaž" StepType="Start">

                                    <asp:TextBox ID="FirstNameBox" runat="server"/>
                                                                
                                    <asp:TextBox ID="LastNameBox" runat="server" />
                                                                                           
            </asp:WizardStep>
                <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server" Title="<% $resources:Users,ZalozitNovyUcet %>">
                   
                </asp:CreateUserWizardStep>
                <asp:CompleteWizardStep ID="CompleteWizardStep1" Title="<% $resources:Users,Finish %>" runat="server" AllowReturn="False" EnableTheming="True">

                </asp:CompleteWizardStep>
            </WizardSteps>

Takže v první kroku zadám rozšiřující informace, ve druhém kroku vytvářím uživatele.

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

Mockrát Vám děkuji, vše funguje jak má.

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

Pro manipulaci s profilem pomocí vlastnosti Profile musí být uživatel přihlášen, což při vytvoření komponentou CreateUserWizard není. Anonymní profily, které se dají použít, pokud uživatel není přihlášen, Altairis providery neumí a ani se jim nedivím, nenašel jsem pro ně nikdy rozumné využití, podle mě je to skoro k ničemu.

Pokud chcete něco ukládat bez přihlášení uživatele, ideální jsou k tomu cookies nebo ještě lépe session, kam můžete plácnout objekt (třeba nákupní košík).

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

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