Problém s registrací   zodpovězená otázka

ASP.NET WebForms

Zdravím, potřeboval bych poradit s registračním formulářem, dodal jsem tam nějaké další vlastní věci viz tabulka níže a když si zaregistruju testovacího uživatele tak do těch ostatních buněk se mi nic neuloží ikdyž je vyplním, ve web.configu jsem je přidal

SQL dotaz

CREATE TABLE dbo.Users (
	UserId int IDENTITY(1,1) NOT NULL,
	UserName varchar(100) NOT NULL,
	PasswordHash char(86) NOT NULL,
	PasswordSalt char(5) NOT NULL,
	Email varchar(100) NOT NULL,
	Comment text NULL,
	Enabled	bit NOT NULL,
	DateCreated datetime NOT NULL,
	DateLastLogin datetime NULL,
	DateLastActivity datetime NULL,
	DateLastPasswordChange datetime NOT NULL,
	FirstName nvarchar(max) NULL,
	LastName nvarchar(max) NULL,
	Street nvarchar(max) NULL,
	Adress nvarchar(max) NULL,
	PostalCode nvarchar(max) NULL,
	TelNumber nvarchar(max) NULL,
	FaxNumber nvarchar(max) NULL,
	MobilNumber nvarchar(max) NULL,
	
	CONSTRAINT PK_Users PRIMARY KEY CLUSTERED (UserId ASC),
	CONSTRAINT IX_Users_UserName UNIQUE NONCLUSTERED (UserName ASC),
)

Registrační formulář

<asp:CreateUserWizard ID="RegisterUser" runat="server" EnableViewState="false">
            <%-->
                <LayoutTemplate>
                    <asp:PlaceHolder ID="wizardStepPlaceholder" runat="server"></asp:PlaceHolder>
                    <asp:PlaceHolder ID="navigationPlaceholder" runat="server"></asp:PlaceHolder>
                </LayoutTemplate>
            --%>    
            <WizardSteps>
                <asp:CreateUserWizardStep ID="RegisterUserWizardStep" runat="server">
                    <ContentTemplate>
                        <p>
                            Použijte níže uvedený formulář pro vytvoření nového účtu.
                        </p>
                        <p>
                            Heslo musí mít minimálně <%= Membership.MinRequiredPasswordLength %> znaků. Z toho musí být alespoň <%=Membership.MinRequiredNonAlphanumericCharacters%> alfanumerické znaky.
                        </p>
                        <span class="failureNotification">
                            <asp:Literal ID="ErrorMessage" runat="server"></asp:Literal>
                        </span>
                        <asp:ValidationSummary ID="RegisterUserValidationSummary" runat="server" CssClass="failureNotification" 
                             ValidationGroup="RegisterUserValidationGroup"/>
                        <div class="accountInfo">
                            <fieldset class="register">
                                <legend>Informace o účtu</legend>
                                <table>
                                    <tr>
                                        <td>
                                            <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">Uživatelské jméno (POVINNÉ):</asp:Label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="UserName" runat="server" CssClass="textEntry"></asp:TextBox>
                                            <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" 
                                                 CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required." 
                                                 ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email">E-Mail (POVINNÉ):</asp:Label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="Email" runat="server" CssClass="textEntry"></asp:TextBox>
                                            <asp:RequiredFieldValidator ID="EmailRequired" runat="server" ControlToValidate="Email" 
                                                 CssClass="failureNotification" ErrorMessage="E-mail is required." ToolTip="E-mail is required." 
                                                 ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Heslo (POVINNÉ):</asp:Label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="Password" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox>
                                            <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" 
                                                 CssClass="failureNotification" ErrorMessage="Password is required." ToolTip="Password is required." 
                                                 ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="ConfirmPasswordLabel" runat="server" AssociatedControlID="ConfirmPassword">Potvrdit heslo (POVINNÉ):</asp:Label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="ConfirmPassword" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox>
                                            <asp:RequiredFieldValidator ControlToValidate="ConfirmPassword" CssClass="failureNotification" Display="Dynamic" 
                                                 ErrorMessage="Confirm Password is required." ID="ConfirmPasswordRequired" runat="server" 
                                                 ToolTip="Confirm Password is required." ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                            <asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword" 
                                                 CssClass="failureNotification" Display="Dynamic" ErrorMessage="The Password and Confirmation Password must match."
                                                 ValidationGroup="RegisterUserValidationGroup">*</asp:CompareValidator>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="2">
                                            <hr />
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="FirstNameLabel" runat="server" AssociatedControlID="FirstName">Jméno (POVINNÉ):</asp:Label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="FirstName" runat="server" CssClass="textEntry"></asp:TextBox>
                                            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="FirstName" 
                                                 CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required." 
                                                 ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="LastNameLabel" runat="server" AssociatedControlID="LastName">Příjmení (POVINNÉ):</asp:Label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="LastName" runat="server" CssClass="textEntry"></asp:TextBox>
                                            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="LastName" 
                                                 CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required." 
                                                 ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="2">
                                            <hr />
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="StreetLabel" runat="server" AssociatedControlID="Adress">Město (POVINNÉ):</asp:Label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="Street" runat="server" CssClass="textEntry"></asp:TextBox>
                                            <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="Street" 
                                                 CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required." 
                                                 ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="AdressLabel" runat="server" AssociatedControlID="Street">Ulice a číslo popisné (POVINNÉ):</asp:Label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="Adress" runat="server" CssClass="textEntry"></asp:TextBox>
                                            <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="Adress" 
                                                 CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required." 
                                                 ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="PostalCodeLabel" runat="server" AssociatedControlID="PostalCode">PSČ (POVINNÉ):</asp:Label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="PostalCode" runat="server" CssClass="textEntry"></asp:TextBox>
                                            <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="PostalCode" 
                                                 CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required." 
                                                 ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="2">
                                            <hr />
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="TelNumberLabel" runat="server" AssociatedControlID="TelNumber">Tel. (NEPOVINNÉ):</asp:Label>
                                        </td>
                                        <td>
                                        <asp:TextBox ID="TelNumber" runat="server" CssClass="textEntry"></asp:TextBox>
                                        <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ControlToValidate="TelNumber" 
                                             CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required." 
                                             ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="FaxNumberLabel" runat="server" AssociatedControlID="FaxNumber">FAX (NEPOVINNÉ):</asp:Label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="FaxNumber" runat="server" CssClass="textEntry"></asp:TextBox>
                                            <asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" ControlToValidate="FaxNumber" 
                                                 CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required." 
                                                 ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="MobilNumberLabel" runat="server" AssociatedControlID="MobilNumber">Mobil (POVINNÉ):</asp:Label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="MobilNumber" runat="server" CssClass="textEntry"></asp:TextBox>
                                            <asp:RequiredFieldValidator ID="RequiredFieldValidator8" runat="server" ControlToValidate="MobilNumber" 
                                                 CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required." 
                                                 ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                        </td>
                                    </tr>
                                </table>
                            </fieldset>
                            <p class="submitButton">
                                <asp:Button ID="CreateUserButton" runat="server" CommandName="MoveNext" Text="Vytvořit účet" 
                                     ValidationGroup="RegisterUserValidationGroup"/>
                            </p>
                        </div>
                    </ContentTemplate>
                    <CustomNavigationTemplate>
                    </CustomNavigationTemplate>
                </asp:CreateUserWizardStep>
            </WizardSteps>
        </asp:CreateUserWizard>

Web.config

          <properties>
            <add name="FullName" type="String" customProviderData="FullName;varchar;50" />
            <add name="BirthDate" type="DateTime" defaultValue="01.01.1900" customProviderData="BirthDate;smalldatetime" />
            <add name="PageSize" type="Int32" defaultValue="10" customProviderData="PageSize;int"/>
            <add name="FirstName" type="String" customProviderData="FirstName;nvarchar;max"/>
            <add name="LastName" type="String" customProviderData="LastName;nvarchar;max"/>
            <add name="Street" type="String" customProviderData="Street;nvarchar;max"/>
            <add name="Adress" type="String" customProviderData="Adress;nvarchar;max"/>
            <add name="PostalCode" type="String" customProviderData="PostalCode;nvarchar;max"/>
            <add name="TelNumber" type="String" customProviderData="TelNumber;nvarchar;max"/>
            <add name="FaxNumber" type="String" customProviderData="FaxNumber;nvarchar;max"/>
            <add name="MobilNumber" type="String" customProviderData="MobilNumber;nvarchar;max"/>
            <add name="IdStates" type="Int32" defaultValue="100" customProviderData="IdStates;int"/>
          </properties>

Případně je to už nahozené i na doméně jelineku.aspone.cz

Prosím kdo mi pomůže.

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

A jakého providera používáte?

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

Používám Altairis.Web.Security 1.5.1 bin

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

Mám pocit,že provider od Michala A.Valáška nepodporuje rozšíření profilových informací nebo ne aspon pomocí standardní cesty,jak to děláte vy.Ronvěž se nedoporučuje zasahovat do již připravených SQL skriptů -> tohle vše je ale napsáno přímo na jeho stránkách,takže příště víc čtěte,než se do něčeho pustíte ;) Zkuste vyměnit providera a použít standardního.

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

Navíc by se tato data měla ukládat do tabulky pro profil a ne uživatele.

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

Tak beru zpět..profily se samozřejmě modifikovat dají,ale nesmíte ty informace cpát do tabulky "User" tam to nemá co dělat.Přečtěte si dokumentaci k providerovi.Máte dané položky ve web.config uloženy pod profile sekcí?

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

Database
As a first step you must create table for storing profile data. Name of the table is configurable (using the tableName attribute), default is Profiles.
Columns in this table must match your profile setup, as discussed later. In addition, there must be two other columns for user name and for last update time. Their name is configurable as well. 
You may add additional columns if needed, as long as they allow NULL or have default values.
Naming conf. attribute	Default name	Type
keyColumnName	UserName	varchar(100)
lastUpdateColumnName	LastUpdate	datetime
Web.config
First, configure web.config to use our profile provider:
<profile enabled="true" automaticSaveEnabled="false" defaultProvider="MyProfileProvider">
  <providers>
    <clear />
    <add name="MyProfileProvider" type="Altairis.Web.Security.SimpleSqlProfileProvider" 
         connectionStringName="MyConnectionString" 
         tableName="UserProfiles"
         keyColumnName="UserName"
         lastUpdateColumnName="LastUpdate"
    />
  </providers>
  <properties>
  </properties>
</profile>
Then configure properties and their database mapping in the <properties> element. Attributes name, type and defaultValue are as usual. But you must add attribute customProviderData containing information about database mapping.
The information has format of “ColumnName;SqlDataType;Length” where length is optional. So, to specify string property FullName of 100 characters and ShoeSize as integer and map them to appropriate DB fields, use:
<add name="FullName" type="String" customProviderData="FullName;varchar;100" />
<add name="ShoeSize" type="Int32" customProviderData="ShoeSize;int" />
In profiles, there is the same problem as in case of roles – missing link between membership and profile providers. The solution, if you’d use both SimpleSqlMembershipProvider and SimpleSqlRoleProvider is also the same: the foreign key constraint.

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

kam to mám teda "nacpat"??? do web.configu

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

Máte to popsané v tom návodu.Vytvořit novou tabulku pro ukládání profilových dat a pak vytvořit nebo upravit sekci profiles ve web.config dle návodu ;)Mimochodem daná "dokumentace" je ke stažení na codeplexu.

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

Děkuji mám tedy vytvořit tabulku profiles a mám ji nějak provázat s tabulkou users např FK

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

Nastavte to dle této šablony,ale podotýkám ,je to šablona,takže neopisovat doslova,ale to určitě víte :-)

<profile enabled="true" automaticSaveEnabled="false" defaultProvider="MyProfileProvider">
  <providers>
    <clear />
    <add name="MyProfileProvider" type="Altairis.Web.Security.SimpleSqlProfileProvider" 
         connectionStringName="MyConnectionString" 
         tableName="UserProfiles"
         keyColumnName="UserName"
         lastUpdateColumnName="LastUpdate"
    />
  </providers>
  <properties>
  </properties>
</profile>

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

jj vím a ptám se ještě jednou mám následně nějak provázat tabulky users a profiles???

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

Myslím,že to bude třeba,ale nevím to jistě takhle z hlavy..jak říkám,stáhněte si dokumentaci a přečtěte si ji ( má asi 7 stran ;)).Tam je vše popsáno.

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

bude něco takového stačit???

create table dbo.Profiles
(
	ProfileId int IDENTITY(1,1)	NOT NULL,
	FirstName nvarchar(max)		NULL,
	LastName nvarchar(max)		NULL,
	Avatar image			NULL,
	Street nvarchar(max)		NULL,
	HouseNumber nvarchar(max)	NULL,
	Adress nvarchar(max)		NULL,
	PostalCode nvarchar(max)	NULL,
	TelNumber nvarchar(max)		NULL,
	FaxNumber nvarchar(max)		NULL,
	MobilNumber nvarchar(max)	NULL,
	
	CONSTRAINT PK_Users PRIMARY KEY CLUSTERED (ProfileId ASC)
)

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

Jaké providery by jste mi tedy doporuči???

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

Klidně použijte od Altaira anebo standardní provider.Pokud použijete ten od Altaira,tak je třeba vytvořit tabulku pro profily dle přiloženého návodu v minulém příspěvku ;)

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

jo mockrát děkuji vyzkouším

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