Мне нужна область на моем веб-сайте, где могут просматривать только определенные пользователи.Аутентификация форм - подпапка Web.Config не работает
Что я сделал, это создать папку видео. Под этим словом у меня есть папки Один из них называется Login, а другой - WatchVid. В папке «Вход» у меня есть страница под названием Login.aspx. После того, как логины пользователей в они будут затем перейти к /WatchVid/Watch.aspx Ниже представление:
Video Folder
|
|
----> Login Folder
| |
| |
| ---> Login.aspx
|
----> WatchVid Folder
|
|
--->Watch.aspx
У меня есть следующий конфигурационный файл веб в моем WatchVid, чтобы только роли, которые имеют VidUser для просмотра страницы :
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow roles="VidUser" />
<deny users="?" />
</authorization>
</system.web>
</configuration>
что я нахожу в том, что даже если я изменю:
<allow roles="VidUser" />
To:
<allow roles="VidUser1" />
Я все еще может попасть в эту страницу Watch.aspx хотя У меня нет роли VidUser1.
Я что-то не так?
Так же, как ссылка ниже код я использую один раз логинов пользователей в их идентификатору пользователя, PWD:
protected void btnLogin_Click(object sender, EventArgs e)
{
if (Roles.IsUserInRole(txtUserName.Text, "StreamingUser"))
{
const string url = "~/Video/WatchVid/Watch.aspx";
Response.Redirect(url);
}
Стефан, я следующий в моей странице корень web.config, но все же позволил мне получить на странице Watch.aspx:
<location path="Video/WatchVid">
<system.web>
<authorization>
<allow roles="StreamingUser1dfdfdfd" />
<deny users="?" />
</authorization>
</system.web>
</location>
Обратите внимание, как я создал фиктивную роль StreamingUser1dfdfdfd просто чтобы проверить его. Я все еще могу попасть на страницу Watch.aspx.
Майк:
У меня есть следующие под моей папке WatchVid но получаю ошибку доступа, когда я делаю это с * - Любая идея? :
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow roles="StreamingUser" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
я получаю следующее сообщение: Несанкционированное: Вход не выполнен из-за настройки сервера. Убедитесь, что у вас есть разрешение на просмотр этого каталога или страницы на основе предоставленных вами учетных данных и методов проверки подлинности, включенных на веб-сервере. Обратитесь к администратору веб-сервера за дополнительной помощью.
Имейте в виду, что это по-прежнему работает:
protected void btnLogin_Click(object sender, EventArgs e)
{
if (Roles.IsUserInRole(txtUserName.Text, "StreamingUser"))
{
const string url = "~/Video/WatchVid/Watch.aspx";
Response.Redirect(url);
}
Но теперь он не будет препятствовать мне до страницы Watch.aspx как я получаю сообщение об ошибке.
Спасибо, Майк. Где я могу поместить свой web.config. Могу ли я поместить его в папку WatchVid, как сейчас? –
@NatePet, это прекрасное место для его размещения. Я предпочитаю делать это таким образом, а не помещать его в корневую конфигурацию с помощью путей местоположения. – MikeSmithDev
иногда это может быть так просто ... @MikeSmithDev прав. –