Профили пользователей в asp.net

У меня есть проект asp.net, и я пытаюсь разработать часть профиля пользователя, чтобы пользователи могли войти в систему со своим собственным профилем (профиль, содержащий admin и пользователей).

Можно ли установить cookie на компьютере пользователя, когда пользователь вошел в систему, а затем разрешил пользователю просматривать сайт? Я имею в виду, что после проверки имени пользователя и пароля, проверяя этот файл cookie на каждой странице, я позволяю пользователю просматривать страницу или перенаправлять на страницу входа.

Это нормально?
Это безопасно для использования?
Есть ли лучший подход для этого?

2 ответа

Решение

Вы можете использовать SqlProfileProvider. Добавление свойств профиля может быть сделано путем добавления некоторого кода в ваш web.confing (внутри раздела system.web должна присутствовать база данных для структуры sqlprofile):

<profile defaultProvider="SqlProvider">
  <providers>
    <clear/>
    <add name="SqlProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ASPNETDB" applicationName="MyApplication" description="SqlProfileProvider"/>
  </providers>
  <properties>
    <add name="LanguageId" allowAnonymous="false" type="System.Int32"/>
    <add name="Company" allowAnonymous="false" type="System.String"/>
  </properties>
</profile>

В этом примере я добавил два свойства профиля languageId nad Company. Вы можете получить доступ к этим свойствам, используя следующий код:

ProfileBase profile = ProfileBase.Create("SomeUserName");
string company = (string)profile["Company"];

Для получения дополнительной информации о SqlProfileProvider посетите следующую ссылку:

http://msdn.microsoft.com/en-us/library/system.web.profile.sqlprofileprovider.aspx

Я написал пару практических ответов о создании профилей с нуля:

Другие вопросы по тегам