Microsoft ASP.NET MVC 4 ApiController
을 사용하여 간단한 RESTful 웹 서비스 (지금은 GET 전용)를 만들었습니다.Microsoft MVC 4, APIController 및 적절한 RESTful 로그인 웹 서비스
이제 서비스 인증 시스템을 구현하는 올바른 방법을 찾고 있습니다. 내 WS를 사용하는 모든 응용 프로그램에 대해 고유 한 로그인 페이지를 갖고 싶지 않기 때문에 내장 된 FormsAuthentication
을 사용하고 싶지 않습니다. 또한 RESTful 패러다임을 깨고 리다이렉션을 강제 실행하고 적절한 401
상태 코드로 클라이언트에 알리지 않습니다.
그래서 난에서 다음 줄을 삭제 장애인 FormsAuthentication
이 내 web.config
:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
및 추가 다음
<modules runAllManagedModulesForAllRequests="true">
<remove name="FormsAuthentication" />
</modules>
을 이미 사용자 로그인, 기본적으로 검사를 관리하기위한 ApiController
이 자격 증명이 유효하지 않은 경우 내 데이터베이스에 대한 자격 증명을 입력하고 사용자 또는 401
을 반환합니다.
나는 Membership
과 Authorization
API를 구현해야한다는 것을 읽었지만, 처음부터 저에게 도움이되는 것을 찾지 못했습니다. 아이디어가 있으십니까? 데이터베이스에서 쿠키 및 인증 코드를 관리해야합니까, 아니면 FormsAuthentication
과 비슷한 클래스가 있습니까?
첫 번째 예제 인 'BasicAuthentication'이 필요합니다. 그러나 나는 데이터베이스에 authcode (authcode로 클라이언트에 사용자 이름과 암호를 보내지 않음)를 저장하는 방법이 있는지 아직 이해하지 못했습니다. – frapontillo
"authcode를 저장하는 방법"이 무슨 의미인지 이해하지 못합니다. authcode에 대한 설명은 무엇입니까? 기본 인증을 사용하면 보낸 사용자 이름/암호를 인코딩하고 반대쪽에서 암호를 해독하려고합니다.또한 기본 인증과 함께 HTTPS/SSL/TSL을 사용하여 전선에서 전체 메시지를 암호화하려고합니다. DB에 암호를 저장할 때 나는 항상 저장된 암호에 대해 단방향 암호화를 사용합니다. 그런 다음 DB에있는 내용을 비교하기 전에 사용자가 입력 한 암호에 대해 동일한 암호화를 사용합니다. –
로그인 할 때마다 임시 인증 코드를 만들어 데이터베이스에 저장하고 싶습니다. FormsAuthentication이하는 것과 똑같은 일이라고 생각합니다. 즉, 로그온 한 사용자에게 엄격하게 연결된 세션 인증 코드를 만듭니다. – frapontillo