Это структура моего приложения, и я хочу вызвать метод в Login.cs html из класса ExternalLogins.cs html .cs. Как я могу это сделать? Некоторые asp помощники?
Вход в систему так же, как ExternalLogins - это RazorPage - без класса контроллера.
Редактировать: @ mj1313 Я добавил этот код:
<div class="col">
<h3>Zaloguj się przez:</h3>
@{
if (Model.ExternalLogins.Count == 0)
{
<div>Brak możliwości zalogowania przez serwisy zewnętrzne.</div>
}
else
{
<form method="post"
asp-page="./Manage/ExternalLogins"
asp-page-handler="LinkLogin"
asp-route-returnUrl="@Model.ReturnUrl">
<div>
@foreach (var provider in @Model.ExternalLogins)
{
<button type="submit"
class="btn btn-primary"
name="provider"
value="@provider.Name"
title="Zaloguj się za pomocą konta
@provider.DisplayName">
@provider.DisplayName
</button>
}
</div>
</form>
}
}
</div>
Но мое действие в ExternalLogins не вызывается
public async Task<IActionResult> OnPostLinkLoginAsync(string provider)
{
// Clear the existing external cookie to ensure a clean login process
await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme);
// Request a redirect to the external login provider to link a login for the current user
var redirectUrl = Url.Page("./ExternalLogins", pageHandler: "LinkLoginCallback");
var properties = _signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl, _userManager.GetUserId(User));
return new ChallengeResult(provider, properties);
}