0

사이트가 별도의 시스템을 통해 권한을 부여합니다. 사용자가 승인되면 Auth 쿠키에 몇 가지 추가 정보를 저장하려고합니다. 아래 코드를 사용하여이 작업을 수행 할 수 있습니다.[Authorize] 속성을 사용하는 MVC 외부 인증

var settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }; 
var serialized = JsonConvert.SerializeObject(accountNumber, Formatting.None, settings); 
var authTicket = new FormsAuthenticationTicket(1, "MyAuthTicket", DateTime.Now, DateTime.Now.AddMinutes(15), 
    false, serialized); 
var encTicket = FormsAuthentication.Encrypt(authTicket); 
var faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket) 
{ 
    HttpOnly = true, 
}; 
Response.Cookies.Add(faCookie); 

그러나 [승인]으로 표시된 WebAPI 방법을 시도하면 401 Unauthorized 오류가 발생합니다. 내가 뭘 놓치고 있니? Web.config의 추가

+0

웹 API는 비 상태입니다. 쿠키로는 아무 것도하지 않습니다. '[Authorize]'를 사용하려면 각 요청에 대해 인증을 받아야합니다. 자, 어떻게 (토큰을 전달, 실제 자격 증명, OAuth 등) 다른 일이 당신에 대해 이동하십시오. 이 질문은 도움이 될 수 있습니다 : http://stackoverflow.com/questions/11775594/how-to-secure-an-asp-net-web-api/ –

+0

사실이 아닙니다. WebAPI는 양식 인증 (암호화 된 쿠키에 저장됩니다)을 사용할 수 있습니다.) 모든 ASP.NET 응용 프로그램처럼 (MVC 및 WebForms). –

답변

0

다음 요구 사항 :

<system.web> 
    <authentication mode="Forms"> 
    </authentication> 
    <!-- other stuff --> 
<system.web>