0

ASP.net 핵심 응용 프로그램에서 Microsoft 계정 인증을 설정하려고합니다.
꽤 많이 뒤이어 ben day's post이 끝날 것으로 예상했습니다.
일단 사용자가 전자 메일 주소를 입력해야하는 단계로 리디렉션되면 대신 (asp.net 응용 프로그램의) 액세스 거부 페이지로 리디렉션됩니다.Asp.net 핵심 및 Microsoft 계정 인증 액세스가 거부되었습니다.

Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationMiddleware : 정보 : AuthenticationScheme : 나는 다음과 같은 오류 처리 된 메일을 볼 수 콘솔에서
. Identity.External는 Microsoft.AspNetCore.Hosting.Internal.WebHost 로그인 : 정보 : 1260.8977ms에서 요청 완료 302 Microsoft.AspNetCore.Hosting.Internal.WebHost : 정보 : 요청 시작 HTTP/1.1 GET http://localhost:44394/
Microsoft.AspNetCore.Authorization.DefaultAuthorizationService : 정보 : 사용자 권한 부여에 실패했습니다. Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker : 경고 : 필터 'Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter'의 요청에 대한 권한 부여가 실패했습니다. Microsoft.AspNetCore.Mvc.ChallengeResult : 정보 : 인증 구성표()로 ChallengeResult를 실행 중입니다. Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationMiddleware : 정보 : AuthenticationScheme : Identity.External이 성공적으로 인증되었습니다. Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationMiddleware : 정보 : AuthenticationScheme : Identity.External이 금지되었습니다. Microsoft.AspNetCore.Authentication.MicrosoftAccount.MicrosoftAccountMiddleware : 정보 : AuthenticationScheme : Microsoft는 금지되었습니다. 여기

내 현재 구성 (매우 간단)

app.UseIdentity()이다; app.UseMicrosoftAccountAuthentication (새 MicrosoftAccountOptions { 표시 이름 = "마이크로 소프트 계정", 된 ClientID = "내 ID", ClientSecret = "내 비밀", AutomaticChallenge = 사실 });

액세스가 거부되는 이유는 무엇입니까?

답변

1

Microsoft 계정으로 인증하는 Asp.Net 핵심 웹 응용 프로그램을 빌드하려고하는데 잘 작동합니다. 그것은 쿠키 및 Microsoft 계정 구성 요소를 사용하여 여기에 참조 용 코드입니다

app.UseCookieAuthentication(new CookieAuthenticationOptions()); 

app.UseMicrosoftAccountAuthentication(new MicrosoftAccountOptions { 
      DisplayName = "Microsoft Account", 
      ClientId = "", 
      ClientSecret = "", 
      AutomaticChallenge = true, 
      SignInScheme= "Cookies" 
}); 

public async Task Login() 
{ 

    await HttpContext.Authentication.ChallengeAsync(new AuthenticationProperties() { RedirectUri = "/" }); 
} 

그리고 당신은 here에서 전체 코드 샘플을 참조 할 수 있습니다. 이 코드 샘플을 실행하려면 먼저 here의 앱을 등록하고 웹 플랫폼을 추가하고 리디렉션 URL http://localhost:7507/signin-microsoft을 구성해야합니다.

원본 문제는 더 이상 Asp.net 5 템플릿이 없으므로이 문제를 재현하는 데 도움이되는 데모 프로젝트를 제공 할 수 있다면 도움이됩니다.

+0

감사합니다. 매력처럼 작동합니다. 쿠키 인증을 시도했지만 더 많은 옵션을 사용했지만 계정 컨트롤러가 없었습니다. 그래서 나는 하나 또는 다른 하나가 누락 된 것 같아요. – baywet

관련 문제