авторизованные пользователи не могут получить доступ к своей странице - PullRequest
1 голос
/ 13 июня 2011

У меня есть приложение, которое аутентифицирует конкретного пользователя (Восток) и перенаправляет его на соответствующую страницу (East.aspx). Эту страницу нельзя отобразить неавторизованным пользователям, когда они переходят на авторизованную страницу (East.aspx)) они перенаправляются на страницу входа в систему.

Чтобы решить вышеуказанную проблему, я создал роли и добавил пользователей к определенной роли в файле приложения (Global.asax) в событии Application_Start.

void Application_Start(object sender, EventArgs e) 
{
    // Code that runs on application startup
    if (Roles.RoleExists("Browser") == false)
    {
        Roles.CreateRole("Browser");
        Roles.AddUserToRole("East","Browser");
    }
    if (Roles.RoleExists("Buyer") == false)
    {
        Roles.CreateRole("Buyer");
        Roles.AddUserToRole("B2","Buyer");
    }
    if (Roles.RoleExists("Seller") == false)
    {
        Roles.CreateRole("Seller");
        Roles.AddUserToRole("S1","Seller");
    }
    if (Roles.RoleExists("Admin") == false)
    {
        Roles.CreateRole("Admin");
        Roles.AddUserToRole("A1","Admin");
    }

}

В файле web.Config я реализовал следующее

</authorization>

<roleManager enabled="true" defaultProvider="SqlRoleManager">
  <providers>
    <clear/>
    <add name="SqlRoleManager" type="System.Web.Security.SqlRoleProvider" connectionStringName="MyDbConn" applicationName="RolebasedApp"/>
    <add applicationName="RolebasedApp" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider"/>
  </providers>
</roleManager>
</system.web>

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

Когда все это будет сделано, когда я запущу свое приложение и введите правильные учетные данные для пользователя «Восток».Я перехожу на страницу входа вместо East.aspx

Как это можно решить?

1 Ответ

0 голосов
/ 13 июня 2011

Вам нужна конфигурация, которая выглядит следующим образом:

  <location path="East.aspx">
    <system.web>
      <authorization>
        <deny users="?" />         <!--Deny all Anonymous (not logged in) users-->
        <allow roles="east"/>        <!--Permit users in these roles-->
        <deny users="*"/>        <!--Deny all users-->
      </authorization>
    </system.web>
  </location>

Вы можете пропустить тег location , если east.aspx находится в отдельной папке и папка имеет собственный веб.файл конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...