2014-11-14 3 views
2

웹 서비스를 기존 프로젝트에 안전하게해야하며이를 수행하는 방법을 잘 모르고있었습니다. 한 사용자가 다른 사용자에 대한 정보를 얻을 수있는 웹 서비스를 호출하지 못하게하려고합니다.웹 API 웹 서비스 보안, Windows 인증

이것은 내 설정입니다. .NET 4.5 - 웹 API 웹 서비스, Windows 인증, ajax (angularjs) 프런트 엔드. NHibernate와 SQL 서버 사용하기. 나는 모든 웹 서비스에 대해 내가 현재 웹 페이지에서 httpcontext를 확인할 수 있음을 알고 있지만 모든 단일 웹 서비스 메서드에서 그렇게하고 싶지는 않습니다. 이 작업을 수행하는 올바른 (쉬운) 방법이 있습니까? 나는 ASP.NET identity와 Owin에 대해 조금 읽었지 만, 이것은 내 머리 위로 나아가는 것 외에 엔티티 프레임 워크 만 지원한다. NHibernate와 사용할 커스텀 공급자 나 뭔가를 써야 할 것이다. 맞습니다. global.asax 등을 사용하고 서버에서 세션을 활성화하여 유효한 사용자 정보를 저장하는 등의 대안을 찾고 있습니다. 이 작업을 수행 할 수 있습니까? 아니면 더 쉬운 대안이 있습니까?

어떤 조언이 필요합니까?

감사합니다.

답변

1

이미 Windows 인증 용으로 구성된 웹 서버가 있고 그 부분이 작동한다고 가정합니다.

승인을 위해 System.Web.Mvc.AuthorizeAttribute (MSDN)을 살펴보십시오. 기본적으로 역할/AD 보안 그룹이 사용됩니다. 맞춤 데이터베이스 (예 : 자체 데이터베이스에 저장되어 있음)가있는 경우 IPrinciple을 구현하고 의 Application_PostAuthenticateRequestThread.CurrentPrincipal을 설정합니다. IPrinciple.IsInRole을 구현하면 데이터베이스에서로드 한 권한과 비교하여 검사합니다.

+0

고마워요! 매우 도움이된다. – Rob