나는 asp.net mvc web api 응용 프로그램을 만들고 멤버쉽 작업을 수행하는 방법을 모르고있다. 나의 현재 프로젝트에서역할 제공자/회원 자격? 어떻게 asp.net 웹 API에?
나는 Users Table
하고 너무 많은 짐을 가져오고 내가 (내 데이터베이스를 설계하는 방법을 맞지 않는 한 내가 asp.net 회원을 사용하고 있지 않다 Role Table
이
내 자신의 확신 내가 할 수있는가에 그것은하지만 그것은 단지 많은 일을 보인다)
user
는 많은 역할을 가질 수 있으며, role
은 많은 사용자을 가질 수 있습니다.
EF를 사용하여 데이터베이스에 대한 거의 모든 호출을 수행하고 있습니다.
지난 프로젝트에서 나는 내 자신의 데이터베이스를 호출하고 사용자가 해당 컨트롤러/동작 방법에 허용 된 역할을 제대로 수행했는지 확인하기 위해 내 자신의 Authorize Attribute
을 만들었습니다.
어떤 회원 공급자도하지 않기 때문에 나는 User.IsInRole
과 같은 내장 함수 중 일부를 놓쳤다. 나는 여전히 User.Identity.Name
을 사용할 수 있었지만 내가 설정 한 쿠키 때문이라고 생각한다.
asp.net mvc 4/web api에서 지금 가장 좋은 방법은 무엇입니까?
Google 검색 중 'SimpleMembership'을 찾았지만 아직 많이 읽지는 않았습니다.
사용자 인증을받은 경우 내 노트에 User.Identity.Name
을 (를) webapi와 함께 사용할 수 있습니까?
User.Identity.Name 어때 그게 asp.net webapi에서 설정 되나요? 이전 mvc 3 응용 프로그램에서이 사용자 지정 권한 부여 특성을 다음과 같이 사용했습니다. httpContext.User.Identity.Name 및 그런 다음 해당 이름 가진 내 서비스 계층을 사용하여 해당 사용 권한을 확인합니다. httpContext.User.Identity.Name을 쿠키로 설정했다고 생각한대로 사용할 수 있습니까? – chobo2
예, 사용자 정의 권한 부여 속성을 가질 수 있고 해당 사용자에게'Thread.CurrentPrincipal'을 설정할 수 있습니다. 기본 인증을 사용하여 멤버 자격 공급자를 사용하는 샘플 구현을 살펴보십시오. http://stackoverflow.com/a/11536349/29407이 예제에서는 사용자 지정 위임 처리기를 사용했지만 권한 부여 필터를 사용할 수 있습니다. 뿐만 아니라. –
매우 좋습니다. 그래도 몇 가지 질문이 있습니다. 왜 비동기입니까? 왜 처리기를 등록해야합니까? (내가하지 않았고 User.Identity가 채워졌지만 비동기로 만들지 못했습니다) 왜 역할에 액세스하지 못하는지 채 웁니다. – chobo2