이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 27998|회답: 3

[출처] Asp.Net MVC에서의 인증 및 승인

[링크 복사]
게시됨 2017. 3. 16. 오후 1:47:34 | | |

MVC에는 ActionFilter가 포함되어 있습니다
WebForm Asp.NET 에서 신원 인증을 달성하기 위해 Microsoft는 세 가지 방법을 제공하며, 그중 가장 일반적으로 사용되는 것은 해당 정보로 구성해야 하는 폼 인증입니다. 예를 들어, 다음과 같은 구성 정보:


즉, 로그인 페이지가 Login.aspx 되고, 로그인 성공 후 기본 페이지가 Default.aspx되며, 사용자 정보가 두 가지 방식을 사용합니다: 인증과 암호화. 그리고 가장 중요한 것은 인증 메서드를 작성해야 한다는 점입니다(아래 권한 부여를 작성해야 하며, 그렇지 않으면 Forms 인증만 사용하고 관련 속성을 설정하는 것은 무의미합니다). 익명 사용자는 모두 거부하고, 정상적으로 로그인한 사용자만 접근할 수 있습니다. 그 다음, 로그인 버튼을 설정해 쿠키에 사용자 이름을 입력하도록 설정했습니다(즉, FormsAuthentication.SetAuthCookie(name, false) 실행; 그거에요.
0 Asp.Net MVC에서는 Forms 인증도 사용할 수 있지만, WebForm에서 하면 작동하지 않습니다. 예를 들어, 정보를 이렇게 구성하세요:


Login.aspx에서 로그인 설정을 하여 AccountController에서 로그인 버튼을 누르고, 로그인 코드는 다음과 같습니다:

이 작업을 수행하면 로그인이 실행되지 않을 것입니다. 그 이유가 무엇인가요? 왜 같은 설정이 MVC에서는 작동하지 않는 걸까요? 그 이유는 메커니즘이 다르기 때문입니다. 로그인 접근 불가능하게 만드는 인증 방식을 설정했기 때문입니다. 그럼 어떻게 해야 할까요?
사실 Asp.Net MVC에서는 이 모든 것을 더 잘 구현할 수 있는 방법이 있습니다. 권한 부여 방법이 필요 없기 때문에, 우리의 구성 정보는 다음과 같습니다:




익명 사용자가 로그인할 수 없다는 명시는 필요하지 않습니다. 물론 이것만으로는 충분하지 않지만, 시스템에 로그인해야 접근할 수 있는 항목을 알려야 합니다. 아마 '()o 아, 너무 번거롭다'고 생각하실 수도 있겠죠. 그게 아니라, 아주 간단합니다. 인증이 필요한 액션에 [Authorize]를 표시하면 됩니다. 예를 들어, Home 폴더에 Index와 Home이라는 두 개의 페이지가 있는데, 인덱스가 인증되어 접근하길 원하지만 Home은 인증하지 않아서 인덱스에 Action 태그 [Authorize]만 부여하면 됩니다. 즉:



이렇게 하면 로그인 후 Index에 접근할 수 있고, Home은 로그인할 필요가 없습니다. 역할을 승인해야 한다면, 권한 부여 표시 시 역할을 지정할 수 있습니다(예: [Authorize(Role=Administrators)]). 하지만 Microsoft에서 제공하는 멤버십 메커니즘을 사용해야 합니다. 왜냐하면 역할은 공짜로 존재할 수 없고, 해당 데이터베이스에 존재하기 때문입니다. 이 부분은 제가 다른 블로그에서 언급했습니다.
ActionFilter 커스터마이즈
때로는 이러한 인증 방식을 충족하지 못할 수도 있고, 유연하지 않다고 느껴질 수도 있습니다. Asp.Net MVC는 ActionFilter를 사용자 맞춤 설정할 수 있게 해줍니다. 예를 들어, 이제 인증도 커스터마이즈합니다:


사용자 관리가 필요하다면, 역할 관련 필터를 정의하겠습니다:

사실, 위의 두 가지 속성은 MVC의 내장 Authorized로 해결되었으며, 필요하다면 확장할 수 있다고 말씀드리겠습니다.
오늘은 여기까지입니다! 소스 코드 다운로드: FormFormsAuthenticationMvc





이전의:VPS 업그레이드 후에는 프로세스가 약 45 Mbps이고 CPU가 100까지 가시게 됩니다.
다음:경고: "동일 종속 어셈블리의 서로 다른 버전 간에 해결되지 않은 충돌이 발견됨"
 집주인| 게시됨 2017. 3. 30. 오전 9:40:22 |
게시됨 2017. 12. 28. 오후 2:58:56 |
렌더링이 있으면 더 좋겠습니다
게시됨 2023. 2. 7. 오후 3:44:56 |

렌더링이 있으면 더 좋겠습니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com