Seria pytań uczestników, które pojawiły się podczas szkolenia Razor Pages w .NET 5 realizowanego w dniach 18-22.10.2021 r.
Linux nie obsługuje bezpośrednio autentykacji windows authentication. Zamiast tego trzeba użyć kerberos.
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(NegotiateDefaults.AuthenticationScheme)
.AddNegotiate();
}
Do użycia kerberos należy zainstalować klienta kerberosa w konterze dockera. Z kolei kontener dockera musi być zarejestrowany w DNS server.
Polecam lekturę:
1. W typie wyliczeniowym należy dodać atrybut Display
public enum Gender
{
[Display(Name = "Mężczyzna")]
Male,
[Display(Name = "Kobieta")]
Female
}
Uwaga: nie pomylić z innym podobnym atrybutem Description bo nie będzie działać.
Następnie możemy użyć metody Html.DisplayFor()
@Html.DisplayFor(c => customer.Gender)
Istnieje również możliwość stworzenia własnego pomocnika znaczników (Tag Helper)
Tworzymy klasę
[HtmlTargetElement("td", Attributes = ForAttributeName)]
public class DisplayForTagHelper : TagHelper
{
private const string ForAttributeName = "asp-display-for";
[HtmlAttributeName(ForAttributeName)]
public ModelExpression For { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
if (output == null)
{
throw new ArgumentNullException(nameof(output));
}
var text = For.ModelExplorer.GetSimpleDisplayText();
output.Content.SetContent(text);
}
}
Dodajemy do pliku _ViewImports.cshtml
@using WebApp
@namespace WebApp.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *,WebApp
Teraz możemy użyć własnego znacznika:
<td asp-display-for="@customer.Gender"></td>
Polecam bibliotekę ToastNotification
Instalujemy bibliotekę
Install-Package AspNetCoreHero.ToastNotification
Rejestrujemy
public void ConfigureServices(IServiceCollection services)
{
services.AddNotyf(options =>
{
options.DurationInSeconds = 5;
options.IsDismissable = true;
options.Position = NotyfPosition.BottomRight;
});
}
Dodajemy do konfiguracji
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseNotyf();
}
Wyświetlamy komunikat
public void OnPost([FromServices] INotyfService notyfService)
{
notyfService.Success("Klient został dodany.");