Asp.net проверка подлинности с помощью форм с ролями
<р>проверка подлинности на основе форм не разрешить проверку подлинности ролей. Эта статья объясняет, как ее реализовать. & мочекаменная <р>основные формы проверки подлинности и
на проверку подлинности на основе форм в ASP.NET довольно полезный. & мочекаменная вместо того, чтобы писать наши собственные процессы аутентификации мы можем просто изменить веб.конфиг под систему.веб-как так.... в
в тег
<режим проверки подлинности="формы"/>
& мочекаменная <формы
& евро & евро & евро наименование="MyWebsiteCookieName"
& евро & евро & евро loginUrl="/логин.аспн"
& евро & евро & евро охраны="все"и
& евро & евро & евро таймаут="180"и
& карм />
в <р>- режим проверки подлинности с помощью форм.
- URL-адрес, чтобы ASP.NET знает, куда перенаправить людей, которым нужно войти в систему.
- тайм-аут Задается в минутах. & мочекаменная & это покупка "с просьбой" не то "время после входа". & Джон, если логин указан стойкими (описано позже) это проигнорировал.
- способ защиты, указанный для печенья.
<Р>далее я хотел указать папку, доступ к которой ограничен для людей, которые вошли в систему. & мочекаменная для этого я ввел следующий код в Web.файл конфигурации (под <конфигурация>)... <р>тег<путь="сотрудники">
& мочекаменная <системы.интернет>функции
& евро & евро & евро <разрешения>
& евро & евро & евро & евро & евро <запрещать пользователям="?"/>
& евро & евро & евро
& мочекаменная функции
и это говорит ASP.NET что путь "/члены" (ведущий / всегда подразумевается) должны отказать в доступе всем неизвестным пользователям. & Джон, когда кто-то пытается получить доступ к странице в /члены вместо этого они будут перенаправлены на страницу login.адрес aspx, который Вы указали в интернете.конфиг.
На этот логин.форма aspx должны попросить то, что учетные данные (имя пользователя/пароль, например) и проверять их. & Джон, как только они были проверены только нужно выполнить следующий код, чтобы пользователь перенаправляется обратно на страницу, которую они изначально пытаются открыть еще...
в тег
система.Веб.Безопасности.Метод formsauthentication.RedirectFromLoginPage(идентификатор пользователя, накладные) <р> <р>идентификатор пользователя-уникальный идентификатор для текущего пользователя (username) и второй логический параметр указывает, должно ли это быть стойким безопасности, cookie или временные (с истечении с момента последней странице запроса), как упоминалось ранее. В ролях
Он был в этот момент я понял, что нужно специальное папку /admin. & мочекаменная эта папка должна быть доступна только администраторам, а не обычные пользователи. & фитоэстрогены для этого я, очевидно, нуждался в роли в интернете.конфиг (под <конфигурация>) вот так еще...
в тег
<путь="Админ">
& мочекаменная <системы.интернет>функции
& мочекаменная <разрешения>
& евро & евро <разрешить ролей="Админ"/>
& евро & евро <запрещать пользователям="*"/>
& мочекаменная с
& мочекаменная функции
и обратите внимание: <ЭМ>приказом разрешить/запретить-это важно. & Джон, если вы отрицаете * (всем пользователям), прежде чем дать роль администратора, никто не будет иметь доступ к этой папке.
и <р>проблема здесь заключается в том, что вы получите только роли, когда режим проверки подлинности="окна". & мочекаменная для этого режима каждый пользователь нуждается в действительной учетной записи пользователя Windows на сервере. & евро не является хорошим решением.<р>к счастью, я нашел интересную статью в MSDN. & мочекаменная при проверке подлинности пользователя при входе.aspx-форму, то вам следует работать, какой роли принадлежит пользователь должен...
в тег
если (автор.IsAdministrator)
& мочекаменная роли = новая строка[] {"Админ", "Пользователь"}
и еще
В ролях & евро = новая строка[] {"член"} <р> //1 час раздвижной истечении времени
Кэш.Добавить(Автор.Уникальный идентификатор, роль, значение NULL типа datetime.Максвеллову,
В период.FromHours(1), CacheItemPriority."Ниже среднего", значение NULL) <р> <р>я создал строковый массив, содержащий ролей, которые пользователь имеет. & поваренная они затем сохраняются & покупка в приложении[] коллекция из соображений производительности, в противном случае мы должны были бы иметь доступ к БД каждый раз, когда мы хотели получить роли текущего пользователя.теперь, потому что проверка подлинности на основе форм не имеет понятия эти роли никогда не пойдет в печенье текущего пользователя. & мочекаменная таким образом, мы должны определить, что эти роли каждый раз, когда проверка подлинности выполняется. & мочекаменная для этого надо идти в мировой.файл asax еще...
в тег
защищенный пустота Application_AuthenticateRequest (в
& одноэтажный объект отправителя, eventargs В Е) и
{
и & мочекаменная если (объект httpcontext.Тока.Пользователь != нулем) и
& мочекаменная {
& мочекаменная если (объект httpcontext.Тока.Пользователей.Идентичности.AuthenticationType != "Форм")
& фитоэстрогены & мочекаменная бросить новое исключение("только форм проверка подлинности поддерживается, а не"
& евро & евро & евро & мочекаменная свойство httpcontext.Тока.Пользователей.Идентичности.AuthenticationType) <р> & мочекаменная система.Безопасности.Основные.IIdentity id_пользователя =
& евро & евро & мочекаменная свойство httpcontext.Тока.Пользователей.Индивидуальность ... на & покупка //у нас есть некоторые роли, чтобы получить? & Джон, если это так, замените пользователю объекта
& мочекаменная если (приложения[идентификатор пользователя.Имя] != значение NULL)
& фитоэстрогены & мочекаменная свойство httpcontext.Тока.Пользователь = новый система.Безопасности.Основные.GenericPrincipal (в
& евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро идентификатор пользователя, (строка[]) Кэш[идентификатор пользователя.Имя]
& евро & евро ), что
& мочекаменная }//пользователь != нуль функции
} <р>
эта процедура проверяет, что текущий пользователь != значение NULL. & мочекаменная это означает, что страница находится в защищенном месте. & Джон, если это так, то мы используем имя пользователя в качестве ключа кэша[] коллекцию, чтобы найти список ролей. & Джон, если эти роли существуют затем мы переподчинили текущего пользователя с объектом мы создаем сами, объект, который содержит список ролей.
В заключение<р>для asp net разработки, безопасности на основе ролей является очень полезным в веб-приложениях. & мочекаменная с помощью нескольких простых строк кода возможна реализация безопасности на основе ролей для пользователей без действительной учетной записи Windows.
Asp.net проверка подлинности с помощью форм с ролями
Asp.net проверка подлинности с помощью форм с ролями : Несколько тысяч советов, которые сделают вашу жизнь проще.
<р>проверка подлинности на основе форм не разрешить проверку подлинности ролей. Эта статья объясняет, как ее реализовать. & мочекаменная <р>основные формы проверки подлинности и
на проверку подлинности на основе форм в ASP.NET довольно полезный. & мочекаменная вместо того, чтобы писать наши собственные процессы аутентификации мы можем просто изменить веб.конфиг под систему.веб-как так.... в
в тег
<режим проверки подлинности="формы"/>
& мочекаменная <формы
& евро & евро & евро наименование="MyWebsiteCookieName"
& евро & евро & евро loginUrl="/логин.аспн"
& евро & евро & евро охраны="все"и
& евро & евро & евро таймаут="180"и
& карм />
в <р>- режим проверки подлинности с помощью форм.
- URL-адрес, чтобы ASP.NET знает, куда перенаправить людей, которым нужно войти в систему.
- тайм-аут Задается в минутах. & мочекаменная & это покупка "с просьбой" не то "время после входа". & Джон, если логин указан стойкими (описано позже) это проигнорировал.
- способ защиты, указанный для печенья.
<Р>далее я хотел указать папку, доступ к которой ограничен для людей, которые вошли в систему. & мочекаменная для этого я ввел следующий код в Web.файл конфигурации (под <конфигурация>)... <р>тег<путь="сотрудники">
& мочекаменная <системы.интернет>функции
& евро & евро & евро <разрешения>
& евро & евро & евро & евро & евро <запрещать пользователям="?"/>
& евро & евро & евро
& мочекаменная функции
и это говорит ASP.NET что путь "/члены" (ведущий / всегда подразумевается) должны отказать в доступе всем неизвестным пользователям. & Джон, когда кто-то пытается получить доступ к странице в /члены вместо этого они будут перенаправлены на страницу login.адрес aspx, который Вы указали в интернете.конфиг.
На этот логин.форма aspx должны попросить то, что учетные данные (имя пользователя/пароль, например) и проверять их. & Джон, как только они были проверены только нужно выполнить следующий код, чтобы пользователь перенаправляется обратно на страницу, которую они изначально пытаются открыть еще...
в тег
система.Веб.Безопасности.Метод formsauthentication.RedirectFromLoginPage(идентификатор пользователя, накладные) <р> <р>идентификатор пользователя-уникальный идентификатор для текущего пользователя (username) и второй логический параметр указывает, должно ли это быть стойким безопасности, cookie или временные (с истечении с момента последней странице запроса), как упоминалось ранее. В ролях
Он был в этот момент я понял, что нужно специальное папку /admin. & мочекаменная эта папка должна быть доступна только администраторам, а не обычные пользователи. & фитоэстрогены для этого я, очевидно, нуждался в роли в интернете.конфиг (под <конфигурация>) вот так еще...
в тег
<путь="Админ">
& мочекаменная <системы.интернет>функции
& мочекаменная <разрешения>
& евро & евро <разрешить ролей="Админ"/>
& евро & евро <запрещать пользователям="*"/>
& мочекаменная с
& мочекаменная функции
и обратите внимание: <ЭМ>приказом разрешить/запретить-это важно. & Джон, если вы отрицаете * (всем пользователям), прежде чем дать роль администратора, никто не будет иметь доступ к этой папке.
и <р>проблема здесь заключается в том, что вы получите только роли, когда режим проверки подлинности="окна". & мочекаменная для этого режима каждый пользователь нуждается в действительной учетной записи пользователя Windows на сервере. & евро не является хорошим решением.<р>к счастью, я нашел интересную статью в MSDN. & мочекаменная при проверке подлинности пользователя при входе.aspx-форму, то вам следует работать, какой роли принадлежит пользователь должен...
в тег
если (автор.IsAdministrator)
& мочекаменная роли = новая строка[] {"Админ", "Пользователь"}
и еще
В ролях & евро = новая строка[] {"член"} <р> //1 час раздвижной истечении времени
Кэш.Добавить(Автор.Уникальный идентификатор, роль, значение NULL типа datetime.Максвеллову,
В период.FromHours(1), CacheItemPriority."Ниже среднего", значение NULL) <р> <р>я создал строковый массив, содержащий ролей, которые пользователь имеет. & поваренная они затем сохраняются & покупка в приложении[] коллекция из соображений производительности, в противном случае мы должны были бы иметь доступ к БД каждый раз, когда мы хотели получить роли текущего пользователя.теперь, потому что проверка подлинности на основе форм не имеет понятия эти роли никогда не пойдет в печенье текущего пользователя. & мочекаменная таким образом, мы должны определить, что эти роли каждый раз, когда проверка подлинности выполняется. & мочекаменная для этого надо идти в мировой.файл asax еще...
в тег
защищенный пустота Application_AuthenticateRequest (в
& одноэтажный объект отправителя, eventargs В Е) и
{
и & мочекаменная если (объект httpcontext.Тока.Пользователь != нулем) и
& мочекаменная {
& мочекаменная если (объект httpcontext.Тока.Пользователей.Идентичности.AuthenticationType != "Форм")
& фитоэстрогены & мочекаменная бросить новое исключение("только форм проверка подлинности поддерживается, а не"
& евро & евро & евро & мочекаменная свойство httpcontext.Тока.Пользователей.Идентичности.AuthenticationType) <р> & мочекаменная система.Безопасности.Основные.IIdentity id_пользователя =
& евро & евро & мочекаменная свойство httpcontext.Тока.Пользователей.Индивидуальность ... на & покупка //у нас есть некоторые роли, чтобы получить? & Джон, если это так, замените пользователю объекта
& мочекаменная если (приложения[идентификатор пользователя.Имя] != значение NULL)
& фитоэстрогены & мочекаменная свойство httpcontext.Тока.Пользователь = новый система.Безопасности.Основные.GenericPrincipal (в
& евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро & евро идентификатор пользователя, (строка[]) Кэш[идентификатор пользователя.Имя]
& евро & евро ), что
& мочекаменная }//пользователь != нуль функции
} <р>
эта процедура проверяет, что текущий пользователь != значение NULL. & мочекаменная это означает, что страница находится в защищенном месте. & Джон, если это так, то мы используем имя пользователя в качестве ключа кэша[] коллекцию, чтобы найти список ролей. & Джон, если эти роли существуют затем мы переподчинили текущего пользователя с объектом мы создаем сами, объект, который содержит список ролей.
В заключение<р>для asp net разработки, безопасности на основе ролей является очень полезным в веб-приложениях. & мочекаменная с помощью нескольких простых строк кода возможна реализация безопасности на основе ролей для пользователей без действительной учетной записи Windows.
Asp.net проверка подлинности с помощью форм с ролями
By russiatips
Asp.net проверка подлинности с помощью форм с ролями : Несколько тысяч советов, которые сделают вашу жизнь проще.