2014-09-25 4 views
3

우리 웹 사이트가 실행되는 SQL 멤버십 폼 인증을 사용하는 .NET 웹 폼 프로젝트가 있습니다. 우리는 이제 웹 API 2 프로젝트를 설정하려고하고 있으며 사용자가 웹 사이트 자격 증명을 사용하여 API를 사용하여 API 호출을 인증하도록합니다.웹 API 용 베어러 토큰을 생성하는 폼 인증?

  1. 웹 사이트를 신원 인증으로 업데이트해야합니까? ... 또는
  2. 기존 멤버십/폼 인증을 사용하여 사용자를 인증 한 다음 후속 통화에 사용할 수있는 토큰을 제공 할 수 있습니까?

두 경우 모두 어떻게 구현합니까?

도움 주셔서 감사합니다.

답변

2
  1. ASP.NET 정체성에 대한 업그레이드 할 필요가 없습니다, 당신은 멤버 자격 공급자로 작업 할 수 있습니다
  2. 당신이 라인을 변경할 필요가 아래 코드를 보면, 사용자 이름과 암호를 검증하기 위해 기존 멤버 자격 공급자를 사용할 수 있습니다 (**) 접두어가 붙은 코드는 사용자의 memebership.validate 메소드와 함께 사용하면됩니다.

당신은 내 세부 Token based Authentication Post

public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) 
    { 

     context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" }); 

     using (AuthRepository _repo = new AuthRepository()) 
     { 
      **IdentityUser user = await _repo.FindUser(context.UserName, context.Password);** 

      if (user == null) 
      { 
       context.SetError("invalid_grant", "The user name or password is incorrect."); 
       return; 
      } 
     } 

     var identity = new ClaimsIdentity(context.Options.AuthenticationType); 
     identity.AddClaim(new Claim("sub", context.UserName)); 
     identity.AddClaim(new Claim("role", "user")); 

     context.Validated(identity); 

    } 
이에 대한 자세한 내용을보실 수 있습니다