Войдите в систему через Facebook, перенаправляясь на неправильный URL-адрес при использовании атрибута авторизации.C#

Место общения программистов C#
Ответить
Anonymous
 Войдите в систему через Facebook, перенаправляясь на неправильный URL-адрес при использовании атрибута авторизации.

Сообщение Anonymous »

У меня есть следующий код для внешнего входа в систему с помощью Google и Facebook в контроллере моего аккаунта

Код: Выделить всё

        [HttpGet]
public IActionResult ExternalLogin(string provider)
{
var redirectUrl = Url.Action(nameof(ExternalLoginCallback), "Account");
var properties = _signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl);
return Challenge(properties, provider);
}

[HttpGet]
public async Task ExternalLoginCallback()
{
var info = await _signInManager.GetExternalLoginInfoAsync();
if (info == null)
{
return RedirectToAction(nameof(Login));
}

// Get the external user information
var email = info.Principal.FindFirstValue(ClaimTypes.Email);
var name = info.Principal.FindFirstValue(ClaimTypes.Name);
var provider = info.LoginProvider;
// Check if the user already exists
var user = await _userService.GetUserByEmailAsync(email);

if (user == null)
{
// Create a new user
user = new User { Name = name, Email = email, IsActive = true, PasswordHash = "" };
if(provider == "Google")
{
user.IsGoogleSignup = true;
}
else if(provider == "Facebook")
{
user.IsFacebookSignup = true;
}
await _userService.CreateUserAsync(user);

}

var token = _userService.GenerateJwtToken(user);

var cookieOptions = new CookieOptions
{
HttpOnly = true,
SameSite = SameSiteMode.Strict,
};

Response.Cookies.Append("AuthToken", token, cookieOptions);

return RedirectToAction("Index", "Home");
}
мой домашний контроллер

Код: Выделить всё

    [Route("[controller]/[action]")]
[Authorize]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
При входе в Google все работает нормально, и я получаю перенаправление на индексную страницу моего сайта
но при использовании Facebook добавляется "#=" в конец моего URL-адреса, вызывающий ошибку и попадание, не передается на домашний контроллер

Код: Выделить всё

    [Route("[controller]/[action]")]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
здесь, если я удалю Авторизовано, появится нажатие, и я смогу перенаправить на свою индексную страницу.
Я видел решения, я Не могу использовать JavaScript для его удаления, так как моя страница даже не загружается из-за неправильного URL
Что можно сделать?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -attribute
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»