Я использую MatBlazor для своего веб-сайта и реализовал аутентификацию Google с помощью этого замечательного блога: Аутентификация Google в серверном Blazor а>
Мне нужна кнопка входа (MatButton
) в моем MatAppBar
.
В исходном коде есть ссылка: <a class="ml-md-auto btn btn-primary" href="/Login" target="_top">Login</a>
.
Эта ссылка работает. Меня перенаправляют на мой OnGetAsync
из моего LoginModel
. Но это не соответствует моему стилю пользовательского интерфейса.
Эта кнопка переходит на правую страницу, но мой OnGetAsync
из моего LoginModel
не срабатывает, и отображается только Sorry, there's nothing at this address.
по умолчанию. <MatButton Class="mat" Outlined="true" Icon="Google" Label="Inloggen" Link="/Login"></MatButton>
Я думаю, мне нужно настроить маршрутизацию, но не могу найти, как это сделать.
Обновление:
Мой Login.cshtml.cs:
[AllowAnonymous]
public class LoginModel : PageModel
{
public IActionResult OnGetAsync(string returnUrl = null)
{
string provider = "Google";
// Request a redirect to the external login provider.
var authenticationProperties = new AuthenticationProperties
{
RedirectUri = Url.Page("./Login",
pageHandler: "Callback",
values: new { returnUrl }),
};
return new ChallengeResult(provider, authenticationProperties);
}
}
Мой Startup.cs:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseCookiePolicy();
app.UseAuthentication();
app.UseAuthorization();
app.UseEmbeddedBlazorContent(typeof(MatBlazor.BaseMatComponent).Assembly);
app.UseEndpoints(endpoints =>
{
endpoints.MapBlazorHub();
endpoints.MapFallbackToPage("/_Host");
});
}