문제

Activedirectory와 ASP.NET 멤버십이 어떻게 작동하는지 알아 내려고 노력하면서 약간 혼란 스러워요 ... 새로운 MVC 프로젝트를 만들고 AccountController / Views를 제거했습니다. activedivedirectory를 사용하고 현재 Windows 로그인을 기반으로 사용자를 자동으로 인증하도록 Web.config를 변경했습니다.

web.config

<authentication mode="Windows">
    <forms
    name=".ADAuthCookie"
    timeout="10" />
</authentication>

<membership defaultProvider="MyADMembershipProvider">
  <providers>
    <clear/>
      <add
         name="MyADMembershipProvider"
         type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
         connectionStringName="ADConnectionString"
         connectionUsername="MYDOMAIN\myuser"
         connectionPassword="xxx"
         />
  </providers>                 
</membership>

사용자가 다음과 같은 사용자 이름을 얻기 위해 다음을 수행 할 수 있으므로 이것은 훌륭하게 작동합니다.

User.Idenity.Name()  'Gives MYDOMAIN\myuser

다음을 보면 실제로 혼란 스럽습니다.

Threading.Thread.CurrentPrincipal.Identity.Name() 'Gives MYDOMAIN\myuser

1. 스레드 아이덴티티가 iusr_workstation 또는 aspnet_wp 사용자 이름이되어서는 안됩니까?
2. 인증과 사천의 차이점은 무엇입니까?

도움이 되었습니까?

해결책

MyUser는 해당 응용 프로그램의 인증 된 사용자이므로 Current Principal이 MyDomain/Myuser를 제공하는 이유입니다. 응용 프로그램은 데이터베이스와 같은 리소스를 사용할 때 IUSR_WorkStation을 가장하고 완전히 다른 문제입니다.

도구 모음에서 프로젝트로 이동하여 ASP.NET 구성을 선택하면 이러한 설정에 액세스하고 사용자, 역할 등을 생성 할 수있는 웹 사이트를 열게됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top