0

Я использую членство и создал настраиваемый профиль, который содержит свойство FirstName. Он хорошо работает, за исключением случаев, когда сеанс/файлы cookie теряются (я не понял, что именно, поскольку его довольно сложно воспроизвести). Затем, когда я получить доступ к любой странице сайта я получаю это исключение:Настройки членстваPropertyNotFoundException после завершения сеанса

[SettingsPropertyNotFoundException:. Свойство настройки «ПгвЬЫате» не был найден] System.Configuration.SettingsBase.GetPropertyValueByName (String ИмениСвойства) +8757578 System.Configuration.SettingsBase.get_Item (String ИмениСвойства) +118 System.Web.Profile.ProfileBase.GetInternal (String ИмениСвойства) +49 System.Web.Profile.ProfileBase.get_Item (String ИмениСвойства) +129 WebFrontend.Security .SecurityHandler.get_FullName() +168 WebFrontend.Controls.LoginInfo.SetupLoginStatus() +15 System.Web.UI.Control.InitRecursive (Control NamingContainer) +186 System.Web.UI.Control.InitRecursive (Control NamingContainer) +421 System.Web.UI.Control.InitRecursive (Control NamingContainer) +421 системы .Web.UI.Control.InitRecursive (Control NamingContainer) +421 System.Web.UI.Control.InitRecursive (Control NamingContainer) +421 System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2098

У вас есть идеи, как я могу остановить это исключение от того, чтобы его бросили? Также 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

Спасибо! В худшем случае мы прибегнем к Login View (сайт изначально был реализован без участия, поэтому мы сохранили исходные элементы управления, но, к сожалению, LoginView не использовался). Кроме того, что касается проверки подлинности, я делаю это за пределами страниц внутри класса, поэтому у меня нет доступа к объекту Request. Однако я мог бы попытаться направить его через главную страницу. Вернется с результатами. –

+0

Я забыл упомянуть, что мой текущий способ проверки подлинности пользователя - это HttpContext.Current.User! = Null –