Как неавтоматизированная навигация сайта обрабатывается в ASP.NET? - PullRequest
1 голос
/ 11 апреля 2010

Мне интересно, как сделать следующее ...

У меня есть система регистрации. Когда пользователь успешно регистрируется, он затем привел ряд страниц сбора данных (для его профиля), а затем, наконец, заканчивается на домашней странице его профиля, где он может начать использовать сайт.

Все это происходит без входа в систему, поэтому он не прошел проверку подлинности и неподтвержденный.

Мой вопрос: как это происходит? Как я могу позволить моему пользователю быть не прошедшим проверку подлинности (и неподтвержденным, но это я понимаю) и использовать все аспекты веб-сайта?

То, как я сейчас настраиваюсь, мой код должен делать так:

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

но, после регистрации меня перенаправляют на страницу входа, что не является желаемым результатом. Вот как выглядят соответствующие узлы в моем файле web.config:

    <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="" />

Когда пользователь выходит из системы после регистрации и первоначального взаимодействия с сайтом, он должен будет войти в систему по возвращении. На этом этапе он должен быть аутентифицирован, но не нуждается в подтверждении в течение определенного периода времени. В конце концов ему напомнят.

Итак, как это сделать? Заранее спасибо.

1 Ответ

0 голосов
/ 12 апреля 2010

Прямо сейчас, запрещающие пользователи = "?" запрещает доступ анонимным пользователям ко всем частям сайта. Проверка подлинности по формам - это не все или ничего. Вы можете настроить его для применения только к части вашего сайта. Поскольку вы применили его везде, каждый раз, когда у вас есть анонимный пользователь, которому не был предоставлен файл cookie для аутентификации, он будет перенаправлен в файл «default.aspx», в который он должен войти.

Если я правильно понимаю, вам нужно сделать следующее ... Установите регистрационную часть сайта, которая будет открыта для анонимных пользователей (вы делаете это в разделе авторизации web.config). Это предотвратит перенаправление на «default.aspx» во время процесса регистрации. После завершения регистрации вы можете отправить их в «default.aspx» для входа в систему или распознать, что они уже зарегистрированы, и войти в систему для них (с помощью метода FormsAuthentication.SetAuthCookie).

...