Web design and hosting, database, cloud and social media solutions that deliver business results
  • Soluzioni aziendali
    • automazione dei processi robotici
    • Software
    • Servizi database
      • Aggiornamento del server e servizi DBA
      • Integrazione dei dati
      • Power BI
      • Servizi di Datawarehouse
    • Sito Web Design
      • Design del logo
      • Gateway di pagamento
      • Localizzazione e traduzione web
      • Ottimizzazione del sito web
      • Sicurezza del sito
      • Strumenti tecnici
    • Servizi per gli affari
      • Microsoft Azure
      • Servizi Google Cloud
      • Servizi Web Amazon
    • Microsoft Office
    • Servizi di consulenza e gestione dei social media
  • Accademia
    • Il nostro ambiente di prova
    • Imparare a usare i database
      • Le basi
      • Ottieni una query aperta
      • Piano di manutenzione di SQL Server 2008
      • Utilizzo dei dati di SQL Server
      • Utilizzo delle date di SQL Server
      • Utilizzo delle funzioni di SQL Server
      • Utilizzo di SQL Server Pivot-Unpivot
      • Strumenti
    • Imparare il web design
      • Costruire il sistema di gestione dei contenuti di Ousia
      • ASP-NET
      • CSS
      • Utilizzo di JavaScript
    • Usando i social media
      • Chiedere una recensione su Google
      • Dimensioni delle immagini dei social media
      • Modifica di un account Facebook da personale a aziendale
      • Scegliere dove concentrare lo sforzo sui social media
      • Utilizzo dei metadati per impostare le immagini dei social media
    • Imparare a usare il cloud e i servizi informatici
      • Errore dell'utilità di pianificazione 2147943645
      • Richiesta SSL e generazione di file PFX in OpenSSL Simple Steps
  • Chi Siamo
    • Carriere
      • Traduttore inglese-portoghese
      • Traduttore inglese-spagnolo
    • Portfolio
    • Squadra
      • Adrian Anandan
      • Alì Al Amine
      • Ayse Hur
      • Chester Copperpot
      • Gavin Clayton
      • Sai Gangu
      • Suneel Kumar
      • Surya Mukkamala
English (EN-US)English (EN-GB)हिंदी (HI)italiano (IT)日本語 (JA)日本語 (JA)Português (PT)

Reimpostazione della password e controllo della creazione dell'account utilizzando la fisarmonica AJAX

Creazione di un controllo combinato di accesso, recupero password, reimpostazione password e creazione account utilizzando AJAX Accordion.

Questo articolo presuppone che tu abbia già scaricato AJAX Toolkit, in caso contrario aggiungilo utilizzando il seguente collegamento.
La creazione di una pagina combinata per gestire l'accesso, la creazione di un nuovo account, il recupero della password e la reimpostazione della password significa che puoi combinare quelle che sarebbero quattro pagine diverse in una e, secondo me, rende il sito molto più fluido.
Affinché ciò funzioni, mi assicurerei di dare una rapida occhiata ai seguenti documenti:

Prima di iniziare, assicurati di aver aggiunto il tuo negozio utente al database!

  • Toolkit AJAX
  • Stile di controllo Ajax
  • Creazione dell'immagine Captcha
  • Controlli di accesso (MSDN)
  • Costruire un CMS (la prima sezione spiega come aggiungere lo store utente asp.net)

Controllo della fisarmonica

Per iniziare, aggiungi AJAX Toolkit Script Manager e un Accordian Control alla tua pagina e aggiungi quattro riquadri come segue.

HTML

<asp:Accordion ID="Accordion1" runat="server" CssClass="accordion" ContentCssClass="accordionContent" HeaderCssClass="accordionHeader" HeaderSelectedCssClass="accordionHeaderSelected">
  <Panes>
  <asp:AccordionPane ID="Login" runat="server" CssClass="accordion">
  <Header>Login</Header>
  <Content>

  </Content>
  </asp:AccordionPane>
  <asp:AccordionPane ID="NewAccount" runat="server">
  <Header>New Account</Header>
  <Content>

  </Content>
  </asp:AccordionPane>
  <asp:AccordionPane ID="RecoverPassword" runat="server">
  <Header>Recover Password</Header>
  <Content>

  </Content>
  </asp:AccordionPane>
  <asp:AccordionPane ID="AccordionPane1" runat="server">
  <Header>Reset Password</Header>
  <Content>

  </Content>
  </asp:AccordionPane>
  </Panes>
</asp:Accordion>

Controllo dell'accesso (Pagina uno)

Questa è la base del controllo, sto usando versioni leggermente aggiunte dei controlli integrati, ciò significa che gli stili possono essere impostati su tutta la linea per abbinarsi tra loro. Innanzitutto il controllo di accesso, puoi trascinarne uno dalla casella degli strumenti di accesso o utilizzare il codice seguente. Se aggiungi il tuo, potrebbe essere necessario adattare Visual Basic.

HTML

<asp:Login ID="Login1" runat="server" Width="100%" RememberMeSet="True">
  <LayoutTemplate>
  <table cellpadding="1" cellspacing="0" style="border-collapse:collapse; width: 100%;">
  <tr>
  <td>
  <table cellpadding="0" style="width:100%;">
  <tr>
  <td align="right" style="width: 30%;">
  <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">User Name:</asp:Label>
  </td>
  <td style="width: 70%;">
  <asp:TextBox ID="UserName" runat="server" style="width: 50%;"></asp:TextBox>
  <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" 
  ControlToValidate="UserName" ErrorMessage="User Name is required." 
  ToolTip="User Name is required." ValidationGroup="Login1">*</asp:RequiredFieldValidator>
  </td>
  </tr>
  <tr>
  <td align="right" style="width: 30%;">
  <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password" style="width: 20%;">Password:</asp:Label>
  </td>
  <td style="width: 70%;">
  <asp:TextBox ID="Password" runat="server" TextMode="Password" style="width: 30%;"></asp:TextBox>
  <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" 
  ControlToValidate="Password" ErrorMessage="Password is required." 
  ToolTip="Password is required." ValidationGroup="Login1">*</asp:RequiredFieldValidator>
  </td>
  </tr>
  <tr>
  <td colspan="2" align="center" >
  <asp:CheckBox ID="RememberMe" runat="server" Text="Remember me next time." />
  </td>
  </tr>
  <tr>
  <td align="center" colspan="2" style="color:Red;">
  <asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
  </td>
  </tr>
  <tr>
  <td align="center" colspan="2">
  <asp:Button ID="LoginButton" runat="server" Text="Log In" ValidationGroup="Login1" CommandName="Login" />
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  </LayoutTemplate>
</asp:Login>

Creazione guidata utente (riquadro due)

Successivamente possiamo aggiungere il Creazione guidata utente, ancora una volta ho usato il controllo integrato, ma ho modificato il modello in modo che abbia lo stile che voglio. Come prima, puoi usare il codice qui sotto o trascinare il tuo.

HTML

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" Width="100%" ContinueDestinationPageUrl="/Home">
  <WizardSteps>
  <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">
  <ContentTemplate>
  <table cellpadding="1" cellspacing="0" style="border-collapse:collapse; width: 100%;">
  <tr>
  <td align="right" style="width: 30%;">
  <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">User Name:</asp:Label>
  </td>
  <td style="width: 70%;">
  <asp:TextBox ID="UserName" runat="server" style="width: 50%;"></asp:TextBox>
  <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" 
  ControlToValidate="UserName" ErrorMessage="User Name is required." 
  ToolTip="User Name is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
  </td>
  </tr>
  <tr>
  <td align="right">
  <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label>
  </td>
  <td>
  <asp:TextBox ID="Password" runat="server" TextMode="Password" style="width: 30%;"></asp:TextBox>
  <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" 
  ControlToValidate="Password" ErrorMessage="Password is required." 
  ToolTip="Password is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
  </td>
  </tr>
   <tr>
  <td align="right">
  <asp:Label ID="ConfirmPasswordLabel" runat="server" 
  AssociatedControlID="ConfirmPassword">Confirm Password:</asp:Label>
  </td>
  <td>
  <asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password" style="width: 30%;"></asp:TextBox>
  <asp:RequiredFieldValidator ID="ConfirmPasswordRequired" runat="server" 
  ControlToValidate="ConfirmPassword" 
  ErrorMessage="Confirm Password is required." 
  ToolTip="Confirm Password is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
  </td>
  </tr>
  <tr>
  <td align="right">
  <asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email">E-mail:</asp:Label>
  </td>
  <td>
  <asp:TextBox ID="Email" runat="server" style="width: 50%;"></asp:TextBox>
  <asp:RequiredFieldValidator ID="EmailRequired" runat="server" 
  ControlToValidate="Email" ErrorMessage="E-mail is required." 
  ToolTip="E-mail is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
  </td>
  </tr>
  <tr>
  <td align="right">
  <asp:Label ID="QuestionLabel" runat="server" AssociatedControlID="Question">Security Question:</asp:Label>
  </td>
  <td>
  <asp:TextBox ID="Question" runat="server" style="width: 80%;"></asp:TextBox>
  <asp:RequiredFieldValidator ID="QuestionRequired" runat="server" 
  ControlToValidate="Question" ErrorMessage="Security question is required." 
  ToolTip="Security question is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
  </td>
  </tr>
  <tr>
  <td align="right">
  <asp:Label ID="AnswerLabel" runat="server" AssociatedControlID="Answer">Security Answer:</asp:Label>
  </td>
  <td>
  <asp:TextBox ID="Answer" runat="server" style="width: 30%;"></asp:TextBox>
  <asp:RequiredFieldValidator ID="AnswerRequired" runat="server" 
  ControlToValidate="Answer" ErrorMessage="Security answer is required." 
  ToolTip="Security answer is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
  </td>
  </tr>
  <tr>
  <td align="center" colspan="2">
  <asp:CompareValidator ID="PasswordCompare" runat="server" 
  ControlToCompare="Password" ControlToValidate="ConfirmPassword" 
  Display="Dynamic" 
  ErrorMessage="The Password and Confirmation Password must match." 
  ValidationGroup="CreateUserWizard1"></asp:CompareValidator>
  </td>
  </tr>
  <tr>
  <td align="center" colspan="2" style="color:Red;">
  <asp:Literal ID="ErrorMessage" runat="server" EnableViewState="False"></asp:Literal>
  </td>
  </tr>
  </table>
  </ContentTemplate>
  <CustomNavigationTemplate>
  <table border="0" cellspacing="5" style="width:100%;height:100%;">
  <tr align="right">
  <td align="right" colspan="0" style="text-align: center">
  <asp:Button ID="StepNextButton" runat="server" CommandName="MoveNext" Text="Create User" ValidationGroup="CreateUserWizard1" />
  </td>
  </tr>
  </table>
  </CustomNavigationTemplate>
  </asp:CreateUserWizardStep>
  <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server">
  <ContentTemplate>
  <table style="font-size:100%;width:100%;">
  <tr>
  <td style="text-align: center">
  Your account has been successfully created. Click continue to go through to personalise your experience.</td>
  </tr>
  <tr>
  <td align="center">
   <asp:Button ID="ContinueButton" runat="server" CausesValidation="False" CommandName="Continue" Text="Continue" ValidationGroup="CreateUserWizard1" />
  </td>
  </tr>
  </table>
   </ContentTemplate>
  </asp:CompleteWizardStep>
  </WizardSteps>
  <FinishNavigationTemplate>
  <asp:Button ID="FinishPreviousButton" runat="server" CausesValidation="False" 
  CommandName="MovePrevious" Text="Previous" />
  <asp:Button ID="FinishButton" runat="server" CommandName="MoveComplete" 
  Text="Finish" />
  </FinishNavigationTemplate>
  <StartNavigationTemplate>
  <asp:Button ID="StartNextButton" runat="server" CommandName="MoveNext" 
  Text="Next" />
  </StartNavigationTemplate>
  <StepNavigationTemplate>
  <asp:Button ID="StepPreviousButton" runat="server" CausesValidation="False" 
  CommandName="MovePrevious" Text="Previous" />
  <asp:Button ID="StepNextButton" runat="server" CommandName="MoveNext" 
  Text="Next" />
  </StepNavigationTemplate>
</asp:CreateUserWizard>

Recupera password (riquadro tre)

Ancora una volta un controllo standard su cui ho modificato il modello. Questo controllo è l'unico per cui non usiamo codice extra.

HTML

<asp:PasswordRecovery ID="PasswordRecovery1" runat="server" Width="100%">
  <QuestionTemplate>
  <table cellpadding="0" style="width:100%;">
  <tr>
  <td align="center" colspan="2">
  Identity Confirmation</td>
  </tr>
  <tr>
  <td align="center" colspan="2">
  Answer the following question to receive your password.</td>
  </tr>
  <tr>
  <td align="right" style="width: 30%">
  User Name:</td>
  <td>
  <asp:Literal ID="UserName" runat="server"></asp:Literal>
  </td>
  </tr>
  <tr>
  <td align="right" style="width: 30%">
  Question:</td>
  <td>
  <asp:Literal ID="Question" runat="server"></asp:Literal>
  </td>
  </tr>
  <tr>
  <td align="right" style="width: 30%">
  <asp:Label ID="AnswerLabel" runat="server" AssociatedControlID="Answer">Answer:</asp:Label>
  </td>
  <td>
  <asp:TextBox ID="Answer" runat="server" Width="50%"></asp:TextBox>
  <asp:RequiredFieldValidator ID="AnswerRequired" runat="server" 
  ControlToValidate="Answer" ErrorMessage="Answer is required." 
  ToolTip="Answer is required." ValidationGroup="PasswordRecovery1">*</asp:RequiredFieldValidator>
  </td>
  </tr>
  <tr>
  <td align="center" colspan="2" style="color:Red;">
  <asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
  </td>
  </tr>
  <tr>
  <td align="center" colspan="2">
  <asp:Button ID="SubmitButton" runat="server" CommandName="Submit" Text="Submit" ValidationGroup="PasswordRecovery1" />
  </td>
  </tr>
  </table>
  </QuestionTemplate>
  <SuccessTemplate>
  <table cellpadding="0" style="width:100%;">
  <tr>
  <td align="center">
  Your password has been sent to you.</td>
  </tr>
  </table>
  </SuccessTemplate>
  <UserNameTemplate>
  <table cellpadding="0" width="100%">
  <tr>
  <td align="center" colspan="2">
  Forgot Your Password?</td>
  </tr>
  <tr>
  <td align="center" colspan="2">
  Enter your User Name to receive your password.</td>
  </tr>
  <tr>
  <td align="right" style="width: 30%;">
  <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">User Name:</asp:Label>
  </td>
  <td align="left" style="width: 70%;">
  <asp:TextBox ID="UserName" runat="server" style="width: 50%;"></asp:TextBox>
  <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" 
  ControlToValidate="UserName" ErrorMessage="User Name is required." 
  ToolTip="User Name is required." ValidationGroup="PasswordRecovery1">*</asp:RequiredFieldValidator>
  </td>
  </tr>
  <tr>
  <td align="center" colspan="2" style="color:Red;">
  <asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
  </td>
  </tr>
  <tr>
  <td align="center" colspan="2">
  <asp:Button ID="SubmitButton" runat="server" CommandName="Submit" Text="Submit" 
  ValidationGroup="PasswordRecovery1" />
  </td>
  </tr>
   </table>
  </UserNameTemplate>
</asp:PasswordRecovery>

Reimposta password (riquadro quattro)

Questo è un controllo personalizzato che ho creato io stesso, utilizzando l'immagine CAPTCHA che ho impostato in un altro articolo.

Se vuoi usarlo, usa il codice qui sotto, aggiungeremo il VB in seguito.

HTML

<div style="text-align: center">
  <asp:Label ID="Label2" runat="server" Text="Please enter your email address"></asp:Label>
</div>
<div style="text-align: center">
  <asp:textbox ID="UserName" runat="server" Width="300px"></asp:textbox>
</div>
<div style="text-align: center">
  <img id="captchaImage" src="" alt="" runat="server"/>
  <asp:HiddenField ID="CaptchaGuid" runat="server" />
</div>
<div style="text-align: center">
  <asp:Label ID="Label1" runat="server" Text="Please enter the value in the image above"></asp:Label>
</div>
<div style="text-align: center">
  <asp:textbox ID="CaptchaVal" runat="server" Width="200px"></asp:textbox>
</div>
<div style="text-align: center">
  <asp:Button ID="CaptchaSubmit" runat="server" Text="Reset my Password" />
</div>
<div style="text-align: center">
  <asp:Label ID="CaptchaResult" runat="server" Text="Please enter the value in the image above"></asp:Label>
</div>

Modifiche alla configurazione Web

A seconda di come si desidera eseguire il sistema, sarà necessario aggiungere e modificare quanto segue nel file di configurazione web.

Dove ho messo YourAppName puoi cambiare tutte le istanze in qualcosa di più adatto. Esistono due provider di appartenenza, il secondo viene utilizzato solo per reimpostare una password.

XML

<configuration>
  <connectionStrings>
  <add  name="MySqlConnection" connectionString="Data Source=.;Initial Catalog=dbname;Integrated Security=True"  providerName="System.Data.SqlClient" />
  </connectionStrings>
  <system.web>
  <authentication  mode="Forms">
  <forms loginUrl="Login" name=".ASPXFORMSAUTH" defaultUrl="Home"/>
  </authentication>
  <membership  defaultProvider="SqlProvider" userIsOnlineTimeWindow="30">
  <providers>
  <clear/>
  <add  name="SqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="MySqlConnection" applicationName="YourAppName" enablePasswordRetrieval="false" enablePasswordReset="true" minRequiredPasswordLength="6"  minRequiredNonalphanumericCharacters="0"  requiresQuestionAndAnswer="true" requiresUniqueEmail="true" passwordFormat="Hashed"/>
  <add  name="SqlProviderReset" type="System.Web.Security.SqlMembershipProvider" connectionStringName="MySqlConnection" applicationName="YourAppName" enablePasswordRetrieval="false" enablePasswordReset="true" minRequiredPasswordLength="6"  minRequiredNonalphanumericCharacters="0"  requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed"/>
  </providers>
  </membership>
  <profile>
  <providers>
  <clear/>
  <add  name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="YourAppName"/>
  </providers>
  </profile>
  <roleManager  defaultProvider="SqlProvider" enabled="true" cacheRolesInCookie="true" cookieName=".gsclaytonnet" cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="All">
  <providers>
  <add  name="SqlProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="MySqlConnection" applicationName="YourAppName"/>
  </providers>
  </roleManager>
  </system.web>
  <system.net>
  <mailSettings>
  <smtp  deliveryMethod="Network" from="info@gsclayton.net">
  <network  host="smtp setting" userName="info@email" password="Password" port="Port" />
  </smtp>
  </mailSettings>
  </system.net>
  <system.serviceModel>
  <behaviors>
  <endpointBehaviors>
  <behavior  name="GSClayton.CaptchaAspNetAjaxBehavior">
  <enableWebScript />
  </behavior>
  </endpointBehaviors>
  </behaviors>
  <serviceHostingEnvironment  aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  <services>
  <service name="GSClayton.Captcha">
  <endpoint address="" behaviorConfiguration="GSClayton.CaptchaAspNetAjaxBehavior" binding="webHttpBinding" contract="GSClayton.Captcha" />
  </service>
  </services>
  </system.serviceModel>
</configuration>

Carico e altre variabili

Sarà necessaria una modifica a questo codice, i metadati dovranno essere modificati. Puoi decommentare il codice per reindirizzare a HTTPS se hai una licenza SSL. Utilizza anche View State per ricordare l'ultima pagina in cui si trovava l'utente.

VB

Imports System.Data.SqlClient
Imports System.Net.Mail
 Inherits System.Web.UI.Page
 Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("MySqlConnection").ConnectionString)
 Protected Sub Page_Load() Handles Me.Load
  Page.Title = "gsclayton.net Sign in"
  Page.MetaKeywords = "gsclayton.net, Databases, Web Design, SQL, HTML, .NET, ASP, CSS, Home"
  Page.MetaDescription = "gsclayton.net Databases and Web Design, SQL, HTML, .NET, ASP, CSS, Home"
 If Not IsPostBack Then
 If Not IsNothing(Request.UrlReferrer) Then
  ViewState("PreviousPageUrl") = Request.UrlReferrer.ToString()
 End If
 End If
 If Request.IsSecureConnection = False Then
 Dim uri As New UriBuilder(Page.Request.Url)
  uri.Scheme = System.Uri.UriSchemeHttps 'To redirect to https, uncomment below
 'Response.Redirect(uri.ToString())
 End If
 Dim com As New SqlCommand("EXEC NewCaptchaValue", con)
  con.Open()
 Dim dr = com.ExecuteReader
 Dim valStr As String
 Dim valGUID As String = "8375DFCA-7499-4756-A470-CE176C44A02A"
 While dr.Read
  valGUID = dr.Item(0).ToString()
  valStr = dr.Item(0).ToString()
   End While
  CaptchaGuid.Value = valGUID
  captchaImage.Src = ResolveUrl("https://www.gsclayton.net/captcha/" + valGUID)
  con.Close()
End Sub

Entrando

Se hai creato il tuo controllo, ricontrolla questo codice, tuttavia dovrebbe collegarsi direttamente. Ho trovato ricordami sul seguente link.

VB

Private Sub LoginButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Login1.LoggedIn
 Dim PreviousPageUrl As String = ViewState("PreviousPageUrl")
 If Not PreviousPageUrl Is  Nothing Then
 Dim uri As New UriBuilder(PreviousPageUrl)
  uri.Scheme = System.Uri.UriSchemeHttp ' Redirect to https
  PreviousPageUrl = uri.ToString
 Else
  PreviousPageUrl = "home"
 End If
 If Login1.RememberMeSet = True Then
  Response.Cookies.Clear()
 'Thanks to for his article-http://blogs.msdn.com/b/friis/archive/2010/08/18/remember-me-checkbox-does-not-work-with-forms-authentication.aspx
 Dim ticket As New  FormsAuthenticationTicket(Login1.UserName, True, 36000) '25 days, nice round number
 Dim ticketEnc As String = FormsAuthentication.Encrypt(ticket)
 Dim AuthCookie As HttpCookie = New HttpCookie(FormsAuthentication.FormsCookieName, ticketEnc)
  AuthCookie.Expires = ticket.Expiration
  Response.Cookies.Add(AuthCookie)
  ViewState("PreviousPageUrl") = Nothing
  Response.Redirect(ResolveUrl(PreviousPageUrl))
 Else
  ViewState("PreviousPageUrl") = Nothing
  Response.Redirect(ResolveUrl(PreviousPageUrl))
 End If
End
 Sub

Creazione di un utente

Questo codice dovrebbe anche collegarsi direttamente, reindirizzerà l'utente all'ultimo URL in cui si trovava.

VB

Protected Sub CreateUserWizard1_CreatedUser(sender As Object, e As System.EventArgs) HandlesCreateUserWizard1.CreatedUser
 Roles.AddUserToRole(CreateUserWizard1.UserName.ToString, "User")
 'Send email etc if desired
 Dim PreviousPageUrl As String = ViewState("PreviousPageUrl")
 If Not PreviousPageUrl Is  Nothing Then
 Dim uri As New UriBuilder(PreviousPageUrl)
  uri.Scheme = System.Uri.UriSchemeHttp ' Redirect to https
  PreviousPageUrl = uri.ToString
 Else
  PreviousPageUrl = "home"
 End If
  ViewState("PreviousPageUrl") = Nothing
  Response.Redirect(ResolveUrl(PreviousPageUrl))
End Sub

Invio di una nuova password

L'ultimo sub da aggiungere controllerà il valore Captcha, se corretto invierà un'e-mail con una nuova password generata casualmente, ecco perché abbiamo aggiunto un provider secondario.

VB

Protected Sub CaptchaValue() Handles CaptchaSubmit.Click
  Try
  Dim valStr As String = Replace(CaptchaVal.Text.ToString, "'", "''")
  Dim valGUID As String = Replace(CaptchaGuid.Value, "'", "''")
  Dim valEmail As String = Replace(UserName.Text.ToString, "'", "''")
  Dim com As New SqlCommand("EXEC CaptchaValue '" & valGUID & "','" & valStr & "'", con)
  Dim comu As New SqlCommand("SELECT UserName FROM aspnet_Membership m INNER JOIN aspnet_Users u ON u.UserId=m.UserId WHERE Email='" & valEmail & "'", con)
  con.Open()
  Dim Result As String = com.ExecuteScalar
  Dim GetUser As String = comu.ExecuteScalar
  con.Close()
  If Result = "Pass" And valEmail <> "" And GetUser <> "" Then
  CaptchaResult.Text = "A new password has been generated and sent to your email address"
  CaptchaResult.ForeColor = Drawing.Color.Green
  Dim mp As MembershipProvider = Membership.Providers("SqlProviderReset")
  Dim user As MembershipUser = mp.GetUser(GetUser, False)
   Dim pass As String = user.ResetPassword
  Dim MailMessage As New MailMessage()
  MailMessage.From = New MailAddress("info@gsclayton.net")
  MailMessage.To.Add(New MailAddress(valEmail))
  MailMessage.IsBodyHtml = True
  MailMessage.Subject = "Your New Password"
  Dim MailClient As New SmtpClient()
  'HTML Format
  Dim HTMLViewString As String = "<div>We have reset your password <br /> " +
  "User Name: " + GetUser + " <br /> " +
  "Password: " + pass + "<br /> " +
  "You should change your password on the following <a href="https://it.claytabase.com/"https://www.gsclayton.net/"">Link</a></div>"
  MailMessage.Body = HTMLViewString
  MailClient.Send(MailMessage)
  Else
  CaptchaResult.Text = "Please enter the value correctly and and your email address"
  CaptchaResult.ForeColor = Drawing.Color.Red
  End If
  Catch
  CaptchaResult.Text = "Please enter the value correctly and and your email address"
  CaptchaResult.ForeColor = Drawing.Color.Red
  End Try
End Sub

Author

Helpful?

Please note, this commenting system is still in final testing.

Progettazione del sito Web di Claytabase

Questa è una sezione di codice che è stata modificata dal codice di Ousia Content Management System, uno dei sistemi più veloci e ottimizzati sul mercato, parte dei nostri servizi di progettazione di siti web.

Questi sono disponibili con siti a partire da circa £ 500.

altro: reattivo e veloce. Sviluppo Web, Design e Hosting con Content Management System
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

Site Links

RSSLoginLink Cookie PolicyMappa del sito

Social Media

facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd

Get in Touch

+442392064871info@claytabase.comClaytabase Ltd, Unit 3d, Rink Road Industrial Estate, PO33 2LT, United Kingdom

Partnered With

Le impostazioni di questo sito sono impostate per consentire tutti i cookie. Questi possono essere modificati sulla nostra pagina politica e le impostazioni dei cookie. Continuando a utilizzare questo sito l'utente accetta l'utilizzo dei cookie.
Ousia Logo
Logout
Ousia CMS Loader