2010-04-11 5 views
1

다음 작업을 수행하는 방법을 궁금합니다.ASP.NET에서 인증되지 않은 사이트 탐색이 어떻게 처리됩니까?

등록 시스템이 있습니다. 사용자가 성공적으로 등록하면 그는 이고 데이터 수집 페이지 (자신의 프로필 용)를 찾은 다음 님이 마침내 자신의 프로필 홈 페이지에서 끝내 사이트 사용을 시작할 수 있습니다.

이 모든 일은 시스템에 로그인하지 않고도 발생하므로 인증되지 않은 이며 확인되지 않았습니다.

제 질문은 어떻게됩니까? 내 사용자가 인증을받지 못하게하고 (확인되지 ​​않았지만 이해함) 어떻게 웹 사이트의 모든 측면을 사용할 수 있습니까? 내가 원하는 결과가 아닌 등록 후 로그인 페이지로 리디렉션되고,하고

case CreateProfileStatus.Success: 
//FormsAuthentication.SetAuthCookie(userName, false); 
Response.Redirect("NextPage.aspx", false); 
break; 

을하지만 :

내가 일을 지금 설정 한 방식으로, 내 코드는이 일을해야한다.

<authentication mode="Forms"> 
     <forms name=".AuthCookie" loginUrl="default.aspx" protection="All"/> 
    </authentication> 
    <authorization> 
     <deny users="?"/> 
     <allow roles="Administrators" /> 
    </authorization> 
    <anonymousIdentification enabled="true" 
          cookieName=".ASPXANONYMOUS" 
          cookieTimeout="100000" cookiePath="/" 
          cookieRequireSSL="false" 
          cookieSlidingExpiration="true" 
          cookieProtection="Encryption" 
          cookieless="UseCookies" 
          domain="" /> 

사용자가 그가 돌아 왔을 로그인해야합니다 사이트에 등록 초기 상호 작용 후 로그 아웃이 내 Web.config의에서 관련 노드가 어떻게 생겼는지입니다. 이 시점에서 그는 인증을 받아야하지만 일정 기간 동안 확인 될 필요가 없습니다. 결국, 그는 상기 될 것입니다.

그럼, 어떻게해야합니까? 미리 감사드립니다.

답변

0

지금은 deny users = "?" 익명 사용자에게 사이트의 모든 부분에 대한 액세스를 거부하고 있습니다. 양식 인증은 전부 또는 일부가 아닙니다. 사이트의 일부에만 적용되도록 설정할 수 있습니다. 익명 사용자가 인증 쿠키를받지 못하면 언제든지 로그인해야하는 "default.aspx"로 리디렉션됩니다.

If 제대로 이해했으면 다음 작업을 수행해야합니다 ... 익명 사용자에게 열리도록 사이트의 등록 부분을 설정합니다 (web.config의 인증 섹션에서이 작업을 수행함). 이렇게하면 등록 프로세스 중에 "default.aspx"로 리디렉션되지 않습니다. 등록이 끝나면 "default.aspx"로 보내서 로그인하거나, FormsAuthentication.SetAuthCookie 메서드를 사용하여 등록되어 있고 로그인했는지 확인할 수 있습니다.

+0

감사의 말 BPotocki, 나는 당신의 제안을 따르고 효과가 있기 때문에 이것을 답으로 표시했습니다. 매우 감사. 그러나, 당신이 괜찮다면, 나는 후속 질문 만합니다. SetAuthCookie (cookie, false)의 경우 aspnet_db (aspnet_db)의 UserId 열에 해당하는 Guid 값을 설정해야합니까? 그렇지 않다면, 나는 무엇을 사용해야하며 이것은 세션 ID와 동일합니까? 다시 한번 감사드립니다. –

+0

SetAuthCookie의 첫 번째 매개 변수는 "userID"이며 원하는대로 지정할 수 있습니다. 시스템의 사용자를 식별하는 것을 사용하십시오. 세션 ID와 같지 않습니다. 한 명의 사용자가 서로 다른 컴퓨터에서 두 개의 세션을 열 수 있으므로 userID는 사용자가 일정하게 유지할 수있는 항목입니다 ("Code Sherpa"는 항상 여기에 ID로 사용됩니다). – Ocelot20

+0

좋아, 그걸 정리 했어. 다시 고마워. –

관련 문제