2011-08-09 3 views
1

ASP.NET Webforms 시절에는 사용자 이름/암호를 얻고 인증하고 이동하기 위해 401 도전을 제시 한 HTTP 모듈이있었습니다. SSL을 통한 기본 인증을 통해 여러 브라우저에서 호환 될 수 있었으며 자격 증명을 확인하기위한 중앙 데이터베이스 저장소를 사용할 수있었습니다.ASP.NET MVC 3 현재 웹 사용자 도전?

최신 MVC 비트를 사용하여 동일한 작업을 수행 할 방법을 찾고 있습니다. 그렇게하기위한 적절한 현대적 방법은 무엇입니까? 요즘에는 Forms Auth가 유일한 방법입니까? 익숙한 "로그온 상자"를 사용자에게 제시해야합니다.

감사합니다.

+0

찾을 뭔가 완벽한 : http://cacheandquery.com/blog/2011/03/customizing-asp-net-mvc-basic-authentication/ – Snowy

답변

1

요즘에는 양식 인증이 유일한 방법입니까?

폼 인증은 인증 방법 일뿐입니다. Windows 통합 인증, 기본, 다이제스트, OpenID 또는 다른 구성표를 사용할 수도 있습니다. 그러나 어떤 유형의 인증을 사용하든간에 ASP.NET MVC에서는 [Authorize] 속성을 사용하여 컨트롤러/액션 (인증 필요)을 꾸미십시오. 또는 더 많은 제어가 필요하면 표준 인증 속성에서 파생 된 사용자 정의 인증 속성을 작성할 수 있습니다.

+0

@Snowy HTTP Basic Auth는 HTTP 모듈을 통해 구현 한 것입니다. 이 답변에서 Darin이 언급했듯이 MVC는 다른 방법들 중에서도이를 지원합니다. –

+0

나는 전에 Basic Auth를 한 것으로 알고 있습니다. 지금 Basic Auth를하고 싶습니다. 나는 Basic 용 HTTP 모듈과 이전에 다이제스트를 처리했지만 지금은 데이터베이스에 대한 인증을 확인하기 위해 다시 Basic이 필요합니다. MVC로 기본 인증을 수행하는 데 필요한 리소스가 없습니다. 도움? – Snowy

0

해당 모듈을 계속 사용하려는 경우 URL 액세스가 까다로울 수있는 많은 URL과 변경 사항 때문에 MVC에서 URL 기반 권한 부여가 어려울 수도 있지만주의해야합니다. RESTful URL은 자주 변경 될 수 있으며 여러 URL (ok URI)을 동일한 위치에 매핑 할 수 있습니다. MVC에서 Darin이 지적했듯이 중요한 점은 컨트롤러 클래스 또는 메소드에서 [Authorize]를 사용하는 것입니다. 여기에있는 아이디어는 URI가 현재 리소스에 액세스하는 데 사용 된 것과 상관없이 사용 권한이 올바른지 알 수 있습니다.

속성을 처리 할 때 사용자 역할 멤버십이 확인되고 원하는 로그인 URL로 리디렉션되지 않으면 (인스턴스 양식 auth에 대해 가정) 인증 공급자가 '어떤 작업이든 수행하도록'구성 할 수 있습니다. 승인되지 않았습니다. Windows 인증의 경우 401 대화를 통해 수행되는 것과 같이 로그인 대화 상자가 표시되며 이는 사용자가 여전히 사용자의 방법을 사용할 수 있다고 말합니다.

예로 들어

윈도우 인증은 여기에서 이루어집니다 : Windows Auth in MVC