2010-08-06 2 views
0

.NET MVC 2.0 응용 프로그램에서 두 가지 유형의 권한을 허용하려고합니다. 하나는 좋은 구식 id/password (폼 인증)이지만 id/password에 대한 요청 페이지의 헤더도 볼 수 있기를 원합니다. 그것이 제공된다면, 나는 폼 인증을 통과하고 사용자가 시스템에 들어갈 수 있도록 허용하여 권한을 부여하려고합니다. MVC에서 그렇게하는 가장 좋은 방법은 무엇입니까?.NET MVC 2.0의 여러 유형의 인증

답변

0

이 유형의 인증에는 기본적으로 아무 것도 없다고 생각하지 마십시오. 요청 헤더를 읽고 필요한 로그인 정보가 포함되어 있는지 확인하고 요청할 경우 양식 인증 만하고 요청 헤더의 로그인 정보를 사용하면됩니다.

string userId = String.Empty; 
string password = String.Empty; 
foreach (var key in Request.Headers.AllKeys) 
{ 
    if (key == "UserId") 
     userId = Request.Headers[key]; 
    if (password == "Password") 
     password = Request.Headers[password]; 
} 

if (!String.IsNullOrEmpty(userId) && !String.IsNullOrEmpty(password)) 
    // attempt login 
else 
    // display login page 
0

인증 요청을 global.asax 또는 사용자 정의 HTTPModule로 작성할 수 있습니다. HTTPModule은 인증을 포함하여 ASP.NET 파이프 라인의 모든 이벤트에 연결하는 데 특히 유용합니다.

그러나 헤더 내용을 기반으로하는 인증에 이것을 사용하면 헤더를 위조하는 것이 얼마나 쉬운 지 알면 매우 위험 할 수 있습니다.