ASP.NET 멤버십 - 어떤 사용자가 인증을 받고 어떤 사용자가 가장합니까?
-
21-08-2019 - |
문제
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 구성을 선택하면 이러한 설정에 액세스하고 사용자, 역할 등을 생성 할 수있는 웹 사이트를 열게됩니다.
제휴하지 않습니다 StackOverflow