거룩한 전쟁은 제쳐두고 인증을 수행하는 방법에 관한 것입니다. 양식 인증 만 사용할 수 있습니다. 동일한 사이트/도메인의 웹 인터페이스를 사용하고 있고 인증 정보를 잘 고려한 경우이 방법이 매우 쉽고 편리합니다.
당신이 첫번째 장소에있는 티켓을 만들려면 API 컨트롤러
public class MyApiControllerBase : ApiController
{
public MySecurityContextType SecurityContext { get; set; }
}
ActionFilterAttribute
public class AuthenticationContextAttribute : System.Web.Http.Filters.ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
MyApiControllerBase controller = actionContext.ControllerContext.Controller as MyApiControllerBase ;
if (controller != null)
{
var context = ((HttpContextBase)controller.Request.Properties["MS_HttpContext"]);
HttpCookie cookie = context.Request.Cookies[FormsAuthentication.FormsCookieName];
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);
controller.SecurityContext= ParseFormsAuthenticationTicket(ticket);
}
}
}
및 코드에 대한 기본 클래스가 필요합니다.
LogIn(HttpRequestBase httpRequest, string userName, string password)
{
var context = DoLoginLogic(userName,password);
FormsAuthentication.SetAuthCookie(context, usePersistentCookies);
}
승인 방법은 분명히 컨트롤러 메소드에서 수행해야합니다.
참조 http://stackoverflow.com/questions/319530/restful-authentication – Yaur