Umbraco 14.2.0
Bootstrap 5.0.2
Εισαγωγή
Το Umbraco είναι ένα ισχυρό και ευέλικτο σύστημα διαχείρισης περιεχομένου (CMS) που επιτρέπει στους προγραμματιστές να δημιουργούν προσαρμοσμένους ιστότοπους με ευκολία. Σε αυτόν τον οδηγό, θα σας καθοδηγήσουμε στη διαδικασία δημιουργίας ενός τύπου εγγράφου, προσθήκης περιεχομένου και σχεδιασμού μιας προβολής για μια σελίδα εγγραφής στο Umbraco. Μέχρι το τέλος αυτού του σεμιναρίου, θα έχετε μια πλήρως λειτουργική σελίδα εγγραφής ενσωματωμένη στον ιστότοπό σας στο Umbraco.
Προαπαιτούμενα
Πριν ξεκινήσετε, βεβαιωθείτε ότι το σύστημά σας πληροί τις ακόλουθες απαιτήσεις:
- Ένα Umbraco project.
- Περιβάλλον ανάπτυξης: Visual Studio ή οποιοδήποτε άλλο C# IDE.
- Βάση δεδομένων: SQL Server, SQLite ή οποιαδήποτε υποστηριζόμενη βάση δεδομένων.
Βήμα 1: Δημιουργία Τύπου Εγγράφου για τη σελίδα εγγραφής
Το πρώτο βήμα για τη δημιουργία μιας σελίδας εγγραφής είναι η δημιουργία ενός τύπου εγγράφου. Ένας τύπος εγγράφου στο Umbraco λειτουργεί ως πρότυπο για το περιεχόμενο που θέλετε να δημιουργήσετε.
- Μεταβείτε στην Ενότητα Ρυθμίσεων: Στο backoffice του Umbraco, μεταβείτε στην ενότητα “Settings”.
- Δημιουργήστε έναν Νέο Τύπο Εγγράφου: Πατήστε στο σύμβολο + δίπλα στο “Document Types” και επιλέξτε “Document Type with Template”. Ονομάστε τον τύπο εγγράφου σας (π.χ., “Register”).
- Πατήστε στο κουμπί Save.
- Καθορίστε τη δομή: Επεξεργαστείτε τη δομή της αρχικής σας σελίδας και προσθέστε στην ιδιότητα “Allowed child node types” τον τύπο εγγράφου “Register”.
Βήμα 2: Προσθήκη Περιεχομένου για τη σελίδα εγγραφής
Αφού δημιουργήσετε τον τύπο εγγράφου, μπορείτε να προσθέσετε περιεχόμενο στη σελίδα εγγραφής σας.
- Μεταβείτε στην Ενότητα Περιεχομένου: Μεταβείτε στην ενότητα “Περιεχόμενο” στο backoffice του Umbraco.
- Δημιουργήστε μια Νέα Σελίδα: Πατήστε με εικονίδιο + που βρίσκεται δίπλα στην αρχική σελίδα και επιλέξτε τον τύπο εγγράφου “Register” που δημιουργήσαμε νωρίτερα.
- Συμπληρώστε τις Ιδιότητες: Εισάγετε το όνομα της σελίδας (π.χ, “Σελίδα εγγραφής”).
- Πατήστε στο κουμπί “Save and publish”.
Βήμα 3: Σχεδιασμός της Προβολής για τη σελίδα εγγραφής
Το τελευταίο βήμα είναι να δημιουργήσετε μια προβολή για να εμφανίσετε τη σελίδα εγγραφής στον ιστότοπό σας.
- Εντοπίζουμε το πρότυπο: Στην ενότητα "Settings", κάνουμε κλικ στο βέλος δίπλα στο “Templates” για να εμφανίσουμε τα πρότυπα.
- Επεξεργασία του προτύπου με ένα από τους ακόλουθους τρόπους:
- Ανοίγουμε το πρότυπο κάνοντας κλικ στο όνομά του και προσθέστε τον απαραίτητο κώδικα HTML και Razor για τη φόρμας εγγραφής.
- Χρησιμοποιούμε το Visual Studio η οποιοδήποτε άλλο text editor επιθυμούμε για να επεξεργαστούμε το αρχείο “register.cshtml” το οποίο βρίσκεται στον φάκελο “Views” της εγκατάστασης Umbraco.
Παρακάτω είναι ένα βασικό παράδειγμα για μια σελίδα εγγραφής.
@using Umbraco.Cms.Web.Common.PublishedModels;
@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
@using Microsoft.AspNetCore.WebUtilities
@using System.Text
@using Microsoft.Extensions.Options
@using Umbraco.Cms.Core.Configuration.Models
@using Umbraco.Cms.Core.Mail
@using Umbraco.Cms.Core.Security
@using Umbraco.Cms.Core.Services
@using Umbraco.Cms.Web.Common
@using Umbraco.Cms.Web.Common.Security
@using Umbraco.Cms.Core.Models
@inject IMemberManager memberManager
@inject IMemberSignInManager memberSignInManager
@inject IMemberService memberService
@inject IEmailSender emailSender
@inject IOptions<GlobalSettings> globalSettings
@inject UmbracoHelper umbracoHelper
@{
Layout = null;
IPublishedContent? home = umbracoHelper.ContentAtRoot().FirstOrDefault();
IPublishedContent? login = home?.Children<IPublishedContent>()?.Where(m => m.ContentType.Alias == "login").FirstOrDefault();
IPublishedContent? registerConfirmation = home?.Children<IPublishedContent>()?.Where(m => m.ContentType.Alias == "registerConfirmation").FirstOrDefault();
IPublishedContent? confirmEmail = home?.Children<IPublishedContent>()?.Where(m => m.ContentType.Alias == "confirmEmail").FirstOrDefault();
string displayName = "";
string displayNameError = "";
string firstName = "";
string firstNameError = "";
string lastName = "";
string lastNameError = "";
string email = "";
string emailError = "";
string password = "";
string passwordError = "";
string confirmPassword = "";
string confirmPasswordError = "";
if (Context.Request.Method == "POST")
{
bool errorFound = false;
displayName = Context.Request.Form["displayName"].ToString().Trim();
firstName = Context.Request.Form["firstName"].ToString().Trim();
lastName = Context.Request.Form["lastName"].ToString().Trim();
email = Context.Request.Form["email"].ToString().Trim().ToLower();
password = Context.Request.Form["password"].ToString().Trim();
confirmPassword = Context.Request.Form["confirmPassword"].ToString().Trim();
if (string.IsNullOrEmpty(displayName))
{
displayNameError = "Το εμφανιζόμενο όνομα είναι υποχρεωτικό πεδίο";
errorFound = true;
}
if (string.IsNullOrEmpty(firstName))
{
firstNameError = "Το όνομα είναι υποχρεωτικό πεδίο";
errorFound = true;
}
if (string.IsNullOrEmpty(lastName))
{
lastNameError = "Το επώνυμο είναι υποχρεωτικό πεδίο";
errorFound = true;
}
if (string.IsNullOrEmpty(email))
{
emailError = "Η διεύθυνση ηλεκτρονικού ταχυδρομείου είναι υποχρεωτικό πεδίο";
errorFound = true;
}
else if (!System.Net.Mail.MailAddress.TryCreate(email, out System.Net.Mail.MailAddress? addr))
{
emailError = "Η διεύθυνση ηλεκτρονικού ταχυδρομείου δεν είναι έγκυρη";
errorFound = true;
}
if (string.IsNullOrEmpty(password))
{
passwordError = "Ο κωδικός πρόσβασης είναι υποχρεωτικό πεδίο";
errorFound = true;
}
if (string.IsNullOrEmpty(confirmPassword))
{
confirmPasswordError = "Η επιβεβαίωση κωδικού πρόσβασης είναι υποχρεωτικό πεδίο";
errorFound = true;
}
else if (confirmPassword != password)
{
confirmPasswordError = "Ο κωδικός επιβεβαίωσης και ο κωδικός πρόσβασης δεν ταιριάζουν";
errorFound = true;
}
if (!errorFound)
{
Umbraco.Cms.Core.Security.MemberIdentityUser user = new Umbraco.Cms.Core.Security.MemberIdentityUser();
user.Name = displayName;
user.Email = email;
user.UserName = email;
user.IsApproved = true;
user.EmailConfirmed = false;
var result = await memberManager.CreateAsync(user, password);
if (result.Succeeded)
{
IMember? member = memberService.GetByKey(user.Key);
if (member == null)
{
throw new InvalidOperationException($"Δεν ήταν δυνατή η εύρεση μέλους με κλειδί");
}
if (member.Properties.Contains("firstName"))
member.Properties["firstName"]?.SetValue(firstName);
if (member.Properties.Contains("lastName"))
member.Properties["lastName"]?.SetValue(lastName);
memberService.Save(member);
MemberIdentityUser? member2 = await memberManager.FindByEmailAsync(email);
if (member2 == null)
{
// Δεν αποκαλύπτουμε ότι ο χρήστης δεν υπάρχει ή ότι δεν είναι επιβεβαιωμένος
Context.Response.Redirect(registerConfirmation!.Url());
}
else
{
var code = await memberManager.GenerateEmailConfirmationTokenAsync(member2);
code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
string callbackUrl = $"{confirmEmail!.Url(mode: UrlMode.Absolute)}?userID={System.Net.WebUtility.UrlEncode(member.Id.ToString())}&code={System.Net.WebUtility.UrlEncode(code)}";
try
{
string? fromAddress = globalSettings.Value.Smtp?.From;
if (!string.IsNullOrWhiteSpace(fromAddress))
{
string subject = "Επιβεβαιώστε το email σας";
string body = $"Επιβεβαιώστε τον λογαριασμό σας <a href='{System.Web.HttpUtility.HtmlEncode(callbackUrl)}'>κάνοντας κλικ εδώ</a>.";
Umbraco.Cms.Core.Models.Email.EmailMessage message = new Umbraco.Cms.Core.Models.Email.EmailMessage(fromAddress, email, subject, body, true);
await emailSender.SendAsync(message, "Contact");
}
}
catch (Exception) { }
}
Context.Response.Redirect(registerConfirmation!.Url());
}
else if (result.Errors.First().Code == "DuplicateUserName")
{
emailError = $"Το μήνυμα ηλεκτρονικού ταχυδρομείου υπάρχει ήδη";
}
else if (result.Errors.First().Code == "PasswordTooShort")
{
emailError = $"Ο κωδικός πρόσβασης είναι πολύ μικρός";
}
else
{
emailError = result.Errors.First().Code;
}
}
}
}
<html>
<head>
<title>Σελίδα εγγραφής</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<h1>Σελίδα εγγραφής</h1>
<hr />
<form method="post">
<div class="row mb-3">
<div class="col-md-12">
<label for="displayName" class="form-label">Εμφανιζόμενο όνομα</label>
<input type="text" id="displayName" name="displayName" value="@displayName" class="form-control" placeholder="Εμφανιζόμενο όνομα">
<p class="text-danger">@displayNameError</p>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="firstName" class="form-label">Ονομα</label>
<input type="text" id="firstName" name="firstName" value="@firstName" class="form-control" placeholder="Ονομα">
<p class="text-danger">@firstNameError</p>
</div>
<div class="col-md-6">
<label for="lastName" class="form-label">Επώνυμο</label>
<input type="text" id="lastName" name="lastName" value="@lastName" class="form-control" placeholder="Επώνυμο">
<p class="text-danger">@lastNameError</p>
</div>
</div>
<div class="row mb-3">
<div class="col-md-12">
<label for="email" class="form-label">Διεύθυνση ηλεκτρονικού ταχυδρομείου</label>
<input type="text" id="email" name="email" value="@email" class="form-control" placeholder="Διεύθυνση ηλεκτρονικού ταχυδρομείου">
<p class="text-danger">@emailError</p>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="password" class="form-label">Κώδικας πρόσβασης</label>
<input type="password" id="password" name="password" value="@password" class="form-control" placeholder="Κώδικας πρόσβασης">
<p class="text-danger">@passwordError</p>
</div>
<div class="col-md-6">
<label for="confirmPassword" class="form-label">Επιβεβαίωση κωδικού πρόσβασης</label>
<input type="password" id="confirmPassword" name="confirmPassword" value="@confirmPassword" class="form-control" placeholder="Επιβεβαίωση κωδικού πρόσβασης">
<p class="text-danger">@confirmPasswordError</p>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<button type="submit" class="btn btn-primary">Εγγραφή</button>
</div>
</div>
<p><a href="@login?.Url()">Σύνδεση</a></p>
</form>
</div>
</body>
</html>
Βήμα 4: Δημιουργία Τύπου Εγγράφου για τη σελίδα επιβεβαίωσης εγγραφής
Μετά την εγγραφή του χρήστη θα πρέπει να μεταβούμε στην οθόνη επιβεβαίωσης εγγραφής ώστε να ενημερώσουμε το χρήστη για την επιτυχή εγγραφή του. Ας ξεκινήσουμε φτιάχνοντας τον τύπο εγγράφου για αυτή τη σελίδα.
- Μεταβείτε στην Ενότητα Ρυθμίσεων: Στο backoffice του Umbraco, μεταβείτε στην ενότητα “Settings”.
- Δημιουργήστε έναν Νέο Τύπο Εγγράφου: Πατήστε στο σύμβολο + δίπλα στο “Document Types” και επιλέξτε “Document Type with Template”. Ονομάστε τον τύπο εγγράφου σας (π.χ., “Register Confirmation”).
- Πατήστε στο κουμπί Save.
- Καθορίστε τη δομή: Επεξεργαστείτε τη δομή της αρχικής σας σελίδας και προσθέστε στην ιδιότητα “Allowed child node types” τον τύπο εγγράφου “Register Confirmation”.
Βήμα 5: Προσθήκη Περιεχομένου για τη σελίδα επιβεβαίωσης εγγραφής
Αφού δημιουργήσετε τον τύπο εγγράφου, μπορείτε να προσθέσετε περιεχόμενο στη σελίδα εγγραφής σας.
- Μεταβείτε στην Ενότητα Περιεχομένου: Μεταβείτε στην ενότητα “Περιεχόμενο” στο backoffice του Umbraco.
- Δημιουργήστε μια Νέα Σελίδα: Πατήστε με εικονίδιο + που βρίσκεται δίπλα στην αρχική σελίδα και επιλέξτε τον τύπο εγγράφου “Register Confirmation” που δημιουργήσαμε νωρίτερα.
- Συμπληρώστε τις Ιδιότητες: Εισάγετε το όνομα της σελίδας (π.χ, “Σελίδα εγγραφής”).
- Πατήστε στο κουμπί “Save and publish”.
Βήμα 6: Σχεδιασμός της Προβολής για τη σελίδα επιβεβαίωσης εγγραφής
Το τελευταίο βήμα είναι να δημιουργήσετε μια προβολή για να εμφανίσετε τη σελίδα εγγραφής στον ιστότοπό σας.
- Εντοπίζουμε το πρότυπο: Στην ενότητα "Settings", κάνουμε κλικ στο βέλος δίπλα στο “Templates” για να εμφανίσουμε τα πρότυπα.
- Επεξεργασία του προτύπου με ένα από τους ακόλουθους τρόπους:
- Ανοίγουμε το πρότυπο κάνοντας κλικ στο όνομά του και προσθέστε τον απαραίτητο κώδικα HTML και Razor για τη φόρμας επιβεβαίωσης εγγραφής.
- Χρησιμοποιούμε το Visual Studio η οποιοδήποτε άλλο text editor επιθυμούμε για να επεξεργαστούμε το αρχείο “registerConfirmation.cshtml” το οποίο βρίσκεται στον φάκελο “Views” της εγκατάστασης Umbraco.
Παρακάτω είναι ένα βασικό παράδειγμα για μια σελίδα επιβεβαίωσης εγγραφής.
@using Umbraco.Cms.Web.Common.PublishedModels;
@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
@using Umbraco.Cms.Web.Common
@inject UmbracoHelper umbracoHelper
@{
Layout = null;
IPublishedContent? home = umbracoHelper.ContentAtRoot().FirstOrDefault();
IPublishedContent? login = home?.Children<IPublishedContent>()?.Where(m => m.ContentType.Alias == "login").FirstOrDefault();
}
<html>
<head>
<title>Σελίδα εγγραφής</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<h1>Registration Page</h1>
<hr />
<p>Παρακαλούμε ελέγξτε το ηλεκτρονικό ταχυδρομείο σας για να επιβεβαιώσετε τον λογαριασμό σας</p>
<a href="@login?.Url()" class="btn">Είσοδος</a>
</div>
</body>
</html>
Βήμα 7: Δημιουργία Τύπου Εγγράφου για τη σελίδα επιβεβαίωσης διεύθυνσης ηλεκτρονικού ταχυδρομείου
Κατά τη διάρκεια της εγγραφής του μέλους, γίνεται μία αποστολή ενός μηνύματος ηλεκτρονικού ταχυδρομείου στο οποίο υπάρχει ένας υπερσύνδεσμος μέσω του οποίου το μέλος μπορεί να επιβεβαιώσει ότι όντος είναι κάτοχος της διεύθυνσης ηλεκτρονικού ταχυδρομείου που δήλωσε κατά την εγγραφή. Για αυτό το λόγο θα πρέπει να φτιάξουμε ένα καινούριο τύπο εγγράφου για την επιβεβαίωση της διεύθυνσης ηλεκτρονικού ταχυδρομείου.
- Μεταβείτε στην Ενότητα Ρυθμίσεων: Στο backoffice του Umbraco, μεταβείτε στην ενότητα “Settings”.
- Δημιουργήστε έναν Νέο Τύπο Εγγράφου: Πατήστε στο σύμβολο + δίπλα στο “Document Types” και επιλέξτε “Document Type with Template”. Ονομάστε τον τύπο εγγράφου σας (π.χ., “Register Confirmation”).
- Πατήστε στο κουμπί Save.
- Καθορίστε τη δομή: Επεξεργαστείτε τη δομή της αρχικής σας σελίδας και προσθέστε στην ιδιότητα “Allowed child node types” τον τύπο εγγράφου “Confirm Email”.
Βήμα 8: Προσθήκη Περιεχομένου για τη σελίδα επιβεβαίωσης διεύθυνσης ηλεκτρονικού ταχυδρομείου
Αφού δημιουργήσετε τον τύπο εγγράφου, μπορείτε να προσθέσετε περιεχόμενο στη σελίδα εγγραφής σας.
- Μεταβείτε στην Ενότητα Περιεχομένου: Μεταβείτε στην ενότητα “Περιεχόμενο” στο backoffice του Umbraco.
- Δημιουργήστε μια Νέα Σελίδα: Πατήστε με εικονίδιο + που βρίσκεται δίπλα στην αρχική σελίδα και επιλέξτε τον τύπο εγγράφου “Confirm Email” που δημιουργήσαμε νωρίτερα.
- Συμπληρώστε τις Ιδιότητες: Εισάγετε το όνομα της σελίδας (π.χ, “Επιβεβαίωση διεύθυνσης ηλεκτρονικού ταχυδρομείου”).
- Πατήστε στο κουμπί “Save and publish”.
Βήμα 9: Σχεδιασμός της Προβολής για τη σελίδα επιβεβαίωσης διεύθυνσης ηλεκτρονικού ταχυδρομείου
Το τελευταίο βήμα είναι να δημιουργήσετε μια προβολή για να εμφανίσετε τη σελίδα επιβεβαίωσης διεύθυνσης ηλεκτρονικού ταχυδρομείου στον ιστότοπό σας.
- Εντοπίζουμε το πρότυπο: Στην ενότητα "Settings", κάνουμε κλικ στο βέλος δίπλα στο “Templates” για να εμφανίσουμε τα πρότυπα.
- Επεξεργασία του προτύπου με ένα από τους ακόλουθους τρόπους:
- Ανοίγουμε το πρότυπο κάνοντας κλικ στο όνομά του και προσθέστε τον απαραίτητο κώδικα HTML και Razor για τη σελίδα επιβεβαίωσης διεύθυνσης ηλεκτρονικού ταχυδρομείου.
- Χρησιμοποιούμε το Visual Studio η οποιοδήποτε άλλο text editor επιθυμούμε για να επεξεργαστούμε το αρχείο “confirmEmail.cshtml” το οποίο βρίσκεται στον φάκελο “Views” της εγκατάστασης Umbraco.
Παρακάτω είναι ένα βασικό παράδειγμα για μια σελίδα επιβεβαίωσης διεύθυνσης ηλεκτρονικού ταχυδρομείου.
@using Umbraco.Cms.Web.Common.PublishedModels;
@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
@using Umbraco.Cms.Web.Common
@using Microsoft.AspNetCore.WebUtilities
@using System.Text
@using Umbraco.Cms.Core.Security
@inject IMemberManager memberManager
@inject UmbracoHelper umbracoHelper
@{
Layout = null;
IPublishedContent? home = umbracoHelper.ContentAtRoot().FirstOrDefault();
IPublishedContent? login = home?.Children<IPublishedContent>()?.Where(m => m.ContentType.Alias == "login").FirstOrDefault();
string userID = Context.Request.Query["userID"].ToString();
string code = Context.Request.Query["code"].ToString();
code = Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(code));
string errorMessage = "";
if (string.IsNullOrWhiteSpace(userID) || string.IsNullOrWhiteSpace(code))
{
errorMessage = "Σφάλμα επιβεβαίωσης της διεύθυνσης ηλεκτρονικού ταχυδρομείου σας.";
}
else
{
Umbraco.Cms.Core.Security.MemberIdentityUser? member = await memberManager.FindByIdAsync(userID);
if (member == null)
{
errorMessage = "Σφάλμα επιβεβαίωσης της διεύθυνσης ηλεκτρονικού ταχυδρομείου σας.";
}
else
{
var result = await memberManager.ConfirmEmailAsync(member, code);
if (!result.Succeeded)
{
errorMessage = "Σφάλμα επιβεβαίωσης της διεύθυνσης ηλεκτρονικού ταχυδρομείου σας.";
}
}
}
}
<html>
<head>
<title>Σελίδα επιβεβαίωσης διεύθυνσης ηλεκτρονικού ταχυδρομείου</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<h1>Σελίδα επιβεβαίωσης διεύθυνσης ηλεκτρονικού ταχυδρομείου</h1>
<hr />
@if (!string.IsNullOrWhiteSpace(errorMessage))
{
<p class="text-danger">@errorMessage</p>
}
else
{
<p>Σας ευχαριστούμε για την επιβεβαίωση της διεύθυνσης ηλεκτρονικού ταχυδρομείου σας.</p>
}
<a href="@login?.Url()" class="btn">Login</a>
</div>
</body>
</html>
Βήμα 10: Καθορίστε τις ρυθμίσεις SMTP του Umbraco
Μέχρι τώρα έχουμε φτιάξει τις τρείς σελίδες που χρειαζόμαστε για να έχουμε τη διαδικασία εγγραφής ενός μέλους συμπεριλαμβάνοντας τον έλεγχο επιβεβαίωσης ότι η διεύθυνση ηλεκτρονικού ελέγχου που όρισε το μέλος είναι έγκυρη. Για να συμβεί όμως αυτό θα πρέπει να καθορίσουμε τις ρυθμίσεις SMTP του Umbraco ώστε να έχει τη δυνατότητα αποστολής ηλεκτρονικών μνημάτων.
Για να μπορέσουμε να το κάνουμε αυτό, θα πρέπει να επεξεργαστούμε το αρχείο appsettings.json και να του προσθέσουμε το ακόλουθο Smtp τμήμα, ορίζοντας τις έγκυρες τιμές για τον διακομιστή SMTP που θέλουμε να χρησιμοποιήσουμε.
{
"Umbraco": {
"CMS": {
"Global": {
"Smtp": {
"From": "<your email>",
"Host": "<host>",
"Port": <port>,
"PickupDirectoryLocation": "<optional directory>",
"Username": "<optional username>",
"Password": "<optional password>",
"DeliveryMethod": "<Network(default)|SpecifiedPickupDirectory|PickupDirectoryFromIis>",
"SecureSocketOptions": "<None|Auto(default)|SslOnConnect|StartTls|StartTlsWhenAvailable>"
}
}
}
}
}
Συμπέρασμα
Ακολουθώντας αυτά τα βήματα, έχετε δημιουργήσει επιτυχώς μια σελίδα εγγραφής στο Umbraco. Αυτή η σελίδα εγγραφής μπορεί τώρα να ενσωματωθεί στον ιστότοπό σας, παρέχοντας στους χρήστες μια απρόσκοπτη εμπειρία εγγραφής.