사용자 지정 인증을 수행해야하는 웹 API가 있습니다. 나는의 OAuth 토큰을 사용하고 있는데 나는 내가 올바른 주요 유형이없는 AuthorizationContext를 만들려고 할 때 문제가 발생 authorizationManagerASP.Net 웹 API 사용자 (System.Security.Claims.ClaimsPrincipal)의 IClaimsPrincipal 웹 API의 사용자 지정
using Microsoft.IdentityModel.Claims;
using System.Diagnostics;
using System.Linq;
public override bool CheckAccess(AuthorizationContext context){
public override bool CheckAccess(AuthorizationContext context)
{
//authorization code here
}
}
를 구현하여 추가 검사를 할 수있다 생각했다. 웹 API 호출에서 새로운 AuthorizationContext에 필요한 IClaimsPrincipal에 캐스팅 할 수없는 System.Security.Claims.ClaimsPrincipal 인 사용자를 얻었습니다. 다음과 같은 오류에 물론 결과의
var authorizationContext = new AuthorizationContext(principal, "resource", "action");//System.Security.Claims.ClaimsPrincipal is the wrong type of principal here, but is what user is on Web API call.
이 :
가 'System.Security.Claims.ClaimsPrincipal'에서 변환 할 수 없습니다에 'Microsoft.IdentityModel.Claims.IClaimsPrincipal'는
다른 뭔가가 있나요 ClaimsAuthorizationManager보다 구현해야합니까? 내가 가지고있는 교장의 유형을 고려할 때 필요한 컨텍스트 객체를 생성하는 간단한 방법이 있습니까?
다른 Web API 물건의 대부분이 Microsoft.AspNet.Identity 또는 Microsoft.AspNet.Identity.Core에있는 동안 ClaimsAuthorizationManager가 Microsoft.IdentityModel.Claims에 있음을 확인했습니다. 아마도 이것이 옳은 것을 사용할 수 있습니다.