>

내 컨트롤러는 Authorize 속성으로 보호되어 있습니다. 내가하고 싶은 것은 Authorize 속성에 Windows 스키마를 사용하거나 전혀 스키마를 사용하지 않도록 지시하는 것입니다. 어떻게하면 되나요?

[Authorize(AuthenticationSchemes = AuthSchemes)]

<올>
  • 케이스 : AuthSchemes = "Windows"
  • 케이스 : AuthSchemes = ""
  • 런타임 동안 스키마를 변경하고 싶기 때문에 관리자는 기본적으로 인증 설정을 변경할 수 있습니다.


    • 답변 # 1

      오랜 시간을 알아 낸 후에 나는이 일을 성공적으로 해냈지만 그렇게 우아하지는 않았다.

      권한 부여 속성을 사용하지 않기로 결정한 대신 사용자 지정 인증 프로세스를 만들기로 결정했습니다. 따라서 기본적으로이 리소스에 따라 인증 미들웨어를 ASP.NET CORE 2.0으로 마이그레이션했습니다.

      이 설정으로 .json 파일에서 읽을 때 사용되는 간단한 클래스를 만들었습니다 :

      public class AuthenticationSettings
      {
          public string AuthenticatonScheme { get; set; }
          public bool Enabled { get; set; }
      }
      
      

      또한 응용 프로그램이 Windows 인증을 사용해야하는지 날씨 정보를 포함하는 .json 파일을 만들었습니다. 파일 읽기는 ConfigureServices () 메서드의 Startup 클래스에서 발생합니다. windows가 true로 설정되면 맞춤 정책 (이제 체계가 설정되어 있음)을 생성 한 다음 전 세계적으로 적용됩니다.

      services.AddAuthorization(o =>  // we create policy with our custom sheme
      {
          o.AddPolicy("WinPolicy", b =>
          {
             b.RequireAuthenticatedUser();
             b.AuthenticationSchemes = new List<string> { auth_settings.AuthenticatonScheme }; // here we set the windows scheme
          });
      });
      services.AddMvc(o =>
      {
             o.Conventions.Add(new AddAuthorizeFiltersControllerConvention()); // we apply the policy
      });
      
      

  • 이전 ios - swift - navigationcontroller의 tableviewcontroller :첫 번째 정적 셀과 상단 간 거리 변경
  • 다음 javascript - reactjs - 구성 요소에서 동적으로 생성 된 요소 표시/숨기기