2

ASP.NET MVC 4 웹 사이트를 개발 중이며 Microsoft ASP.NET Universal Providers을 사용하고 있습니다. Windows Azure에 배포하고 SQL 데이터베이스를 사용할 계획입니다. 로컬 SQL Server 2008 데이터베이스에서 구성원 자격, 프로필 및 역할을 초기화하기 위해 ASP.NET 웹 사이트 관리 도구를 통해 새 사용자를 만들었습니다. 세션을 어떻게 초기화합니까?ASP.NET 범용 공급자 및 세션 상태

내 응용 프로그램이 실행될 때 당연히 "잘못된 개체 이름 dbo.Sessions"라는 SqlException이 발생합니다. Windows Azure에서 테스트 할 때 이것은 문제가되지 않았습니다. dbo.Sessions가 자동으로 만들어졌습니다. Azure의 dbo.Sessions에서 테이블 만들기 스크립트를 생성하고 로컬 SQL 데이터베이스에 적용한 후 로컬에서 실행할 수 있습니다.

의 Web.config :

<membership hashAlgorithmType="SHA1" defaultProvider="DefaultMembershipProvider"> 
    <providers> 
    <clear /> 
    <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" passwordFormat="Hashed" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" /> 
    </providers> 
</membership> 
<profile enabled="false" defaultProvider="DefaultProfileProvider"> 
    <providers> 
    <clear /> 
    <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider" connectionStringName="DefaultConnection" applicationName="/" /> 
    </providers> 
</profile> 
<roleManager enabled="false" defaultProvider="DefaultRoleProvider"> 
    <providers> 
    <clear /> 
    <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider" connectionStringName="DefaultConnection" applicationName="/" /> 
    </providers> 
</roleManager> 
<sessionState mode="Custom" customProvider="DefaultSessionProvider"> 
    <providers> 
    <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers" connectionStringName="DefaultConnection" applicationName="/" /> 
    </providers> 
</sessionState> 

답변

2

이 문서는 이전 aspnet_Memembership의 차이점에 대한 자세한 내용이수록되어 유니버설 공급자와 비교하십시오. 기사에서

http://dotnet.dzone.com/articles/stronger-password-hashing-net

핵심 포인트 :

첫째, 더 이상 aspnet_regsql, 당신은 단지 확인 연결 문자열을 설정하고 계정 DBO 권한 (걱정하지 마십시오가되어 있는지 확인이 없습니다, 이 방법을 유지할 필요는 없습니다.) 그런 다음 앱을 실행하고 어떤 조치를 취하면 회원 공급자가 DB에 접속해야합니다 (즉, 로그온하십시오. 계정이 없다는 사실은 중요하지 않습니다.)).

작동 할 때 모든 것이 있습니다.

+0

나를 미치게 한 가지가 있습니다. Studio 2012와 IIS Express를 사용하여이 작업을하고 있었는데, 구성에 문제가있었습니다. 나중에 해결했지만 예외는 사라지지 않았습니다. 침착하게, 나는 실행중인 IIS Express 인스턴스를 닫았습니다. 그런 다음 작동했습니다. 나는 그 테이블이 이미 있어야한다고 말하면서 어딘가에 플래그를 저장했다고 가정합니다. – Rolf

0

당신이 윈도우 Azure & SQL 데이터베이스에 배포하려면 Microsoft ASP.NET 유니버설 공급자를 사용하고, SQL 데이터베이스에 테이블로 연결 문자열에 몇 가지 문제가있을 수있는 것 생성되지 않습니다.

Soctt에서 아래의 블로그가 그렇게 따라 누락 된 것을 참조하십시오 수행하는 방법에 대한 단계 정보에 의해 단계를 보여줍니다 :

Introducing System.Web.Providers - ASP.NET Universal Providers for Session, Membership, Roles and User Profile on SQL Compact and SQL Azure

관련 문제