0

방금 ​​ASP.NET 보안을 시작했습니다. 몇 가지 질문이 있습니다. 1) 역할 관리를 사용하여 특정 페이지에 대한 액세스를 제한했습니다. 이 부분은 내 web.config어디에 역할이 저장되어 있습니까?

<profile> 
    <providers> 
     <clear /> 
     <add name="AspNetSqlProfileProvider" 
      type="System.Web.Profile.SqlProfileProvider, 
      System.Web, Version=2.0.0.0, Culture=neutral, 
      PublicKeyToken=b03f5f7f11d50a3a" 
      connectionStringName="LocalSqlServer" applicationName="/" /> 
    </providers> 
</profile> 
<roleManager enabled="true"> 
    <providers> 
     <clear /> 
     <add connectionStringName="LocalSqlServer" 
      applicationName="/" name="AspNetSqlRoleProvider" 
      type="System.Web.Security.SqlRoleProvider, System.Web, 
      Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     <add applicationName="/" name="AspNetWindowsTokenRoleProvider" 
      type="System.Web.Security.WindowsTokenRoleProvider, 
      System.Web, Version=2.0.0.0, 
      Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </providers> 
</roleManager> 

잘 작동합니다. 하지만 무슨 일이 있었는지 connecitonStringName "ApplicationServices"이전에 설정되었습니다. 그리고 그것은 효과가 없을 것입니다. 그런 다음이를 "LocalSqlServer"로 변경했습니다. 그것은 일하기 시작했습니다.

그래서 이해하고 싶습니다. 그 이유는 무엇입니까? 또한 LocalSqlServer는 연결 문자열 값의 다른 임의의 이름입니까? 데이터베이스를 점검 했으므로 역할이 저장되지 않습니다. 그렇다면 역할은 어디에 저장되어 있습니까?

이들은 초보자 용 질문입니다. 미리 양해 해 주셔서 감사합니다.

+0

또한 web.config에는 LocalSqlServer라는 연결 문자열이 있어야합니다. 바로 역할 데이터가 보관 될 곳입니다. –

답변

0

왜 그런가요?

잘못된 연결 문자열을 사용하면 응용 프로그램에서 멤버십 및 역할 테이블을 찾을 수 없다는 것을 의미합니다.

LocalSqlServer는 연결의 다른 임의의 이름 문자열 값입니까? 당신이

LocalSqlServer는 어디 역할이 저장됩니다라는 연결 문자열을 볼 수의 Web.config에서

? 이 새로운 SimpleMembershipProvider의 경우는 기존의 회원 프레임 워크, 또는 UserProfile의 경우

aspnet_Roles 테이블 보라.

+0

방금 ​​내 앱을 확인했습니다. 이 폴더 \ Web \ App_Data를 보았습니다.이 폴더에는 ASPNETDB.MDF와 aspnetdb_log.LDF가 있습니다. 이게 그럴 것 같아, 맞지? – doglin

+0

그건 데이터베이스 예입니다. –

+0

QA 상자에 배포 할 예정입니다. 지금 당장은 지역적으로 잘 작동합니다. 나는 그것들을 우리의 품질 보증 상자에 배치 할 예정입니다. aspnet_regsql.exe를 실행할 필요가 없습니다. 맞습니까? – doglin

0

AspNetSqlProfileProvider을 신고 할 때 connectionStringName="LocalSqlServer"을 지정하여 사용할 연결을 지정해야합니다.

0

데이터베이스에 회원 테이블이 표시되지 않으면 회원 테이블을 추가해야합니다.

실행으로 VisualStudio 명령 줄에서 다음 명령을 실행하십시오 :이 그것을하는 데 도움이되는 특별한 도구입니다 aspnet_regsql 가 또는 여기를 찾을 수 : C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe.

을 그리고 단지의 지침을 따르십시오.

관련 문제