ASP.NET 웹 API는 항상 반환 (401) 무단 오류
[mycustomattribute처럼 내 컨트롤러 속성 이름을 사용하여 다음과 같은 링크를 asp.net 웹 api.I에 사용자 인증을 사용하고
]
공용 클래스 userController : apicontroller {
}
하지만 항상 401 unauthorize을 보여줍니다 인증 상태가 승인되는 예외적 인 예외. 나는 사용자 정의 권한 부여 속성을 작성하기위한 링크에 정확히 와트를 따라갔습니다.
내 사용자 지정 권한 부여 클래스
public class tokenAuthorize : AuthorizeAttribute
{
DBEntity _objScrumDBEntities = new DBEntity();
public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)
{
base.OnAuthorization(actionContext);
if (actionContext.Request.Headers.GetValues("authenticationToken") != null)
{
// get value from header
string authenticationTokenValue = Convert.ToString(actionContext.Request.Headers.GetValues("authenticationToken").FirstOrDefault());
ObjectParameter m_tokenParam = new ObjectParameter("status", typeof(string));
_objScrumDBEntities.validateToken(authenticationTokenValue, m_tokenParam);
string status = Convert.IsDBNull(m_tokenParam.Value) ? null : (string)m_tokenParam.Value;
if (status == "false")
{
HttpContext.Current.Response.AddHeader("authenticationToken", authenticationTokenValue);
HttpContext.Current.Response.AddHeader("AuthenticationStatus", "NotAuthorized");
// actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Forbidden);
return;
}
else
{
HttpContext.Current.Response.AddHeader("authenticationToken", authenticationTokenValue);
HttpContext.Current.Response.AddHeader("AuthenticationStatus", "Authorized");
return;
}
//return;
}
//actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.ExpectationFailed);
//else
// actionContext.Response.ReasonPhrase = "Please provide valid inputs";
}
}
내 컨트롤러 System.Web.Security.Roles.GetRolesForUser (사용자 이름)이 자동으로 때를 미혹하지 않는 것 같다
[tokenAuthorize]
public class myController : ApiController
{
public IEnumerable<organization> Get()
{
return _objOrgRepository.GetAll();
}
을 할 수 전달 역할에 대해 그들을 비교해야하십시오 몇 가지 코드를 공유하십시오. 이것은 우리가 분석하기에는 너무 적습니다 –
코드는 –
입니다. 서비스를 요청할 때 authenticationToken http 헤더가 있습니까? – cellik