저는 ASP.NET MVC3을 사용하는 간단한 웹 응용 프로그램을 작성 중이며이 응용 프로그램에 대한 액세스를 도메인의 Active Directory 그룹 구성원으로 제한하려고합니다. 나는 사용자 정의 인증 필터를 정의하지 않은로컬에서 실행할 때 내 MVC3 AD 인증 필터가 작동하지 않는 이유는 무엇입니까?
namespace MyApp.Controllers
{
[Authorize(Roles = @"DOMAINNAME\MyApp_AccessControlGroup")]
public class HomeController : Controller
{
public ActionResult index()
{
//action code
}
//More actions here
}
}
난 단지 있도록 Windows 인증에의 web.config를 수정 했더라도, : 다음과 같이
나는, 컨트롤러에 인증 필터를 사용하여 이런 짓을 한
<authentication mode="Windows">
<!--<forms loginUrl="~/Account/LogOn" timeout="2880" />-->
</authentication>
<!--Added for Windows authentication-->
<authorization>
<deny users="?"/>
</authorization>
그리고 개발 웹 서버 (Visual Studio의 게시 기능을 사용하는 경우)에 배포 할 때 아주 잘 작동합니다. MyApp_AccessControlGroup 그룹에 없으면 브라우저에서 응용 프로그램을 가져 오려고 할 때 자격 증명을 묻는 메시지가 나타납니다. 그러나 그룹에 가입하면 예상대로 웹 페이지를 볼 수 있습니다.
Visual Studio에서 디버깅 할 때는 그렇지 않습니다. 내 워크 스테이션에서 F5 키를 누르고 ASP.NET 개발 서버를 시작하면 AD 그룹에 없더라도 사이트를 볼 수 있습니다.
왜 이런 일이 발생합니까? 승인 필터가 코드가 실행 중인지 여부와 관계없이 그룹 멤버십을 계속 확인해야합니다.
웹 구성에 roleManager 섹션이 있습니까? 그렇다면 게시 할 수 있습니까? 또한 웹 설정에서' '가 있습니까? –
@SteveMallory 나는 web.config에 그것들을 가지고 있지 않습니다. –