0

멤버십을 사용하고 FirstName이라는 속성이 포함 된 사용자 지정 프로필을 만들었습니다. 그것은 세션/쿠키가 손실되었을 때를 제외하고는 잘 작동합니다 (정확히 재현하기가 어렵 기 때문에 정확히 알아 내지 못했습니다).세션이 손실 된 후 Membership SettingsPropertyNotFoundException이 발생했습니다.

: 나는이 사이트의 모든 페이지에 액세스 할 때 그럼 난이 예외 얻을 [SettingsPropertyNotFoundException :. 설정 속성 'FIRSTNAME'을 (를) 찾을 수 없습니다 되었다] System.Configuration.SettingsBase.GetPropertyValueByName (문자열 propertyName 형식) 8757578 System.Configuration.SettingsBase.get_Item (문자열 propertyName 형식) 118 System.Web.Profile.ProfileBase.GetInternal (문자열 propertyName 형식) +49 System.Web.Profile.ProfileBase.get_Item (문자열 propertyName 형식) 129 WebFrontend.Security .SecurityHandler.get_FullName() +168 WebFrontend.Controls.LoginInfo.SetupLoginStatus() +15,451,515,System.Web.UI.Control.InitRecursive (제어 namingContainer) 186 System.Web.UI.Control.InitRecursive (제어 namingContainer) +421 System.Web.UI.Control.InitRecursive (제어 namingContainer) +421 시스템 .Web.UI.Control.InitRecursive (컨트롤 namingContainer) +421 System.Web.UI.Control.InitRecursive (컨트롤 namingContainer) +421 System.Web.UI.Page.ProcessRequestMain (부울 includeStagesBeforeAsyncPoint, 부울 includeStagesAfterAsyncPoint) 2,098

이 예외의 발생을 어떻게 막을 수 있습니까? 또한 CustomErrors는이 사이트에 대해 켜져 있으며 오류 페이지를 무시하고 대신 예외를 보여줍니다. 난 그냥 사용자가이 추한 예외를 보지 못하도록하고 싶다.

답변

0

더 이상 인증되지 않은 사용자 프로필에 액세스하려고하는 것 같습니다.

  1. 로그인보기 :http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.loginview.anonymoustemplate(v=vs.100).aspx

  2. 확인 인증 :http://msdn.microsoft.com/en-us/library/system.web.httprequest.isauthenticated(v=vs.90).aspx

난 당신이 로그인보기를 구현 또는 사용자 프로필 속성에 액세스하기 전에 인증 검사를 고려할 것을 권하고 것
+0

감사합니다. 최악의 경우 우리는 로그인보기에 의지 할 것입니다. 사이트는 처음에는 멤버쉽없이 구현되었으므로 원래의 컨트롤은 유지했지만 불행하게도 LoginView는 사용되지 않았습니다. 또한 인증 검사에 관해서는 클래스 내의 페이지 외부에서이 작업을 수행하므로 Request 객체에 액세스 할 수 없습니다. 그러나 마스터 페이지를 통해 경로를 지정하려고 할 수 있습니다. 결과와 함께 돌아올 것입니다. –

+0

나는 현재 사용자 인증 여부를 확인하는 나의 방법은 HttpContext.Current.User! = null 인 것을 언급하는 것을 잊었다. –