2

私は自分のウェブサイトにMatBlazorを使用しており、次の素晴らしいブログを使用して Google 認証を実装しました: サーバー側 Blazor での Google 認証

にログイン ボタン ( MatButton) が必要ですMatAppBar

元のコードにはリンクがあります: <a class="ml-md-auto btn btn-primary" href="/Login" target="_top">Login</a>.
このリンクは機能します。私OnGetAsyncの の 私の にリダイレクトされLoginModelます。しかし、それは私の UI スタイルと一致しません。

このボタンは正しいページに移動しますが、my OnGetAsyncof myLoginModelはトリガーされず、デフォルトのみ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");
        });
    }
4

2 に答える 2