asp.net
  • json
  • reactjs
  • asp.net-authorization
  • 2017-09-05 13 views 0 likes 
    0

    나는 다음과 같은 제어 기능이 있습니다 몇 가지 이유 response.headers.get ("승인")에 대한Response.Header에 권한을 추가하는 방법은 무엇입니까?

    let fetchTask = fetch('http://localhost:25565/api/mediaengine/login?username=' + userName + '&password=' + password) 
    
          .then(response => { 
           var k = response.headers.get("Authorization"); 
           var l = 0; 
          }) 
          .catch(e => { 
          }); 
         addTask(fetchTask); 
    

    다시 널오고있다 :

    [HttpGet("[action]")] 
        public async Task<HttpResponseMessage> Login(string username, string password) 
        { 
         var user = await _userManager.FindByNameAsync(username); 
         var res = await _signInManager.CheckPasswordSignInAsync(user, password, false); 
    
         if (res.Succeeded) 
         { 
          var msg = new HttpResponseMessage(HttpStatusCode.OK); 
          msg.Headers.Add("Authorization", JwtManager.GenerateToken(username)); 
          return msg; 
         } 
         else 
          return new HttpResponseMessage(HttpStatusCode.BadRequest);// Request.CreateResponse(HttpStatusCode.BadRequest, new object()); 
        } 
    

    에서 감속기를 나는이이 반응한다.

    답변

    1

    api에서 응답을 반환해야합니다. 이것은 작동하지 않았다 HttpResponseMessage 클래스

    [HttpGet("[action]")] 
    public async Task<HttpResponseMessage> Login(string username, string password) 
    { 
        var user = await _userManager.FindByNameAsync(username); 
        var res = await _signInManager.CheckPasswordSignInAsync(user, password, false); 
    
        if(res.Succeeded) 
        { 
         var response = Request.CreateResponse(HttpStatusCode.OK, new object()); 
         response.Headers.Add("Authorization", JwtManager.GenerateToken(username)); 
         return response; 
        }else 
         return Request.CreateResponse(HttpStatusCode.BadRequest, new object()); 
    } 
    
    +0

    , response.headers 여전히 널 .. 내가 계정으로 대답을 내 질문을 편집 – tweetypi

    +0

    수행 할 수 있습니다, 나는 약간 다르게 (새을 일을했다 HttpResponseMessage, 존재하지 않는 Request.CreateResponse 대신 asp.net 코어를 사용하고 있기 때문에 ...) – tweetypi

    +0

    @tweetypi 좋아, 네가 .net 핵심을 사용한다면, 내 대답을 업데이트해야한다. 그러나 개념은 같습니다. 그래도 응답 헤더를 얻지 못하면 컨트롤러 메소드가 호출 된 후 응답 파이프 라인의 일부 미들웨어가 헤더를 지우고 있는지 확인하십시오. 시작을 체크인하십시오. –

     관련 문제

    • 관련 문제 없음^_^