Профили пользователей в 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
Я написал пару практических ответов о создании профилей с нуля:
Для веб-сайтов (где для вас автоматически создается объект профиля на основе настроек Web.config).
Для веб-приложений (например, MVC, где нужно указать класс наследования
ProfileBase
)