그래서, 내 IPrincipal.IsInRole (...) 내가 너무 좋아하고 FormsAuthentication을 사용하고 구현했습니다 :권한 부여하고 FormsAuthentication과 함께 메시지를 거부
다음<authentication mode="Forms">
<forms loginUrl="Login.aspx" name="someName" timeout="600"/>
</authentication>
나는 당신을 필요로하는 페이지를 인증 할 수있다 그리고 당신은 "roleA"를 가지고있다. 다음과 같이 구성됩니다.
<location path="SomePage.aspx">
<system.web>
<authorization>
<allow roles="roleA" />
<deny users="*"/>
</authorization>
</system.web>
</location>
이제 웹 응용 프로그램에 로그인하지만 roleA가없는 사용자로 로그인합니다. SomePage.aspx를 방문하면 forms 요소의 loginUrl에 지정된 URL 인 Login.aspx로 리디렉션됩니다. 그래서, 내 질문은 내가 거부 된 메시지 또는 URL을 지정할 수 있어야합니까? 사용자가 인증되었지만 승인되지 않은 경우 왜 로그인 페이지로 리디렉션하려고합니까? 그것은 사용자에게 지옥처럼 혼란 스럽습니다. 나는 간단한 것을 놓치고 있다고 말해주세요.
읽어 주셔서 감사합니다.
아,이 질문에 답할 수 있어야한다. 나는 이런 식으로 할 필요가 없기를 바랐다. (이것은 도움이되고, 어리석은 느낌이다.) –
나는 :) ASP.NET이 권한 부여 실패의 원인이 된 특정 역할에 대한 참조를 공개하면 (예 : 요청 개체에서) 이상적인 솔루션이 될 것입니다. –
권한이 있지만 단순히 로그인하지 않고 URL을 치려고하는 사용자에게 인증되지 않은 메시지가 표시되지 않습니까? – Chris