powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / simplemembership mvc4 ограничить доступ к area
25 сообщений из 30, страница 1 из 2
simplemembership mvc4 ограничить доступ к area
    #38467769
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как ограничить доступ определенным пользователем к area настройками web.config
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38467781
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsch,

http://stackoverflow.com/questions/2319157/how-can-we-set-authorization-for-a-whole-area-in-asp-net-mvc

Web.config-based security should almost never be used in an MVC application . The reason for this is that multiple URLs can potentially hit a controller, and putting these checks in Web.config invariably misses something. Remember - controllers are not associated with areas, routes are associated with areas. The MVC controller factory will happily serve controllers from the Areas/ folder for non-area requests if there's no conflict.

For example, using the default project structure, adding an Admin area with an AdminDefaultController, you can hit this controller via /Admin/AdminDefault/Index and /AdminDefault/Index.

The only supported solution is to put your attribute on a controller base class and to ensure that each controller within the area subclasses that base class.

ещё вопросы?
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38468024
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему авторизованный пользователь через 10 сек. становиться опять не авторизованным?

web.config<forms loginUrl="~/Account/Login" timeout="20" slidingExpiration="true" />

timeout хоть 10 хоть 20 хоть 20000
разницы нет
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38468427
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsch,

проблема может быть в реализации Account/Login
проверьте что в куках после авторизации
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38468471
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstschКак ограничить доступ определенным пользователем к area настройками web.config
Безопасность в веб конфиге - моветон.
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472163
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делаю след. образом

Код: c#
1.
2.
    [Authorize(Roles = "Admins")]
    public abstract class AdminController : Controller



на локальной машине все замечательно работает

на паркинге же пользователь авторизован, но при этом при любом запросе к закрытой ареа
его перекидывает на страницу логина, это может быть как аякс запрос
так и просто get. хотя при этом пользователь авторизован.
при этом через 1-2 сек повторно заходишь на страницу и перенаправления на
страницу логина не происходит
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472180
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
куки присутствуют
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472185
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и получается странная вещь
страница в одном табе браузера загрузилась в тот же момент в другом табе произошла переадресация на логин страницу
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472347
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsch,

покажите веб.конфиг
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472407
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework,
 Version=4.4.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxxxxx" requirePermission="false" />
    <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
  </configSections>
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=xxxxxxxxxxxxx;pooling=true;" providerName="System.Data.SqlClient" />
  </connectionStrings>
  <appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login" timeout="20" slidingExpiration="true" />
    </authentication>
    <roleManager enabled="true">
      <providers>
        <clear />
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="DefaultConnection" applicationName="/" />
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
      </providers>
    </roleManager>
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
    <httpHandlers>
      <add verb="GET" path="*imgrs.axd" type="MvcApplication5.ImageResize, MvcApplication5" />
    </httpHandlers>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true" />
    <handlers>
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" 
modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" 
preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" 
modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" 
preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
 type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
    <security>
      <requestFiltering>
        <requestLimits maxUrl="10999" maxQueryString="9999" />
      </requestFiltering>
    </security>        
  </system.webServer>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  </entityFramework>
  <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <targets>
      <target name="logfile" xsi:type="File" fileName="C://file.txt" />
    </targets>
    <rules>
      <logger name="*" minlevel="Info" writeTo="logfile" />
    </rules>
  </nlog>
</configuration>
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472441
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsch,

попробуйте

Код: xml
1.
<forms loginUrl="~/Account/LogOn" timeout="2880" />



без sliding expiration

ещё решение

в LogOn

Код: c#
1.
FormsAuthentication.SetAuthCookie("username", false);



понятное дело вместо username подставлять реальный юзернейм.

и ещё, не хотите попробовать SimpleMembershipProvider? меньше заморочек и всё работает.
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472467
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я вообще-то его и использую :-)
что-то не то в web.conig написано?
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472476
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsch,

если вы используете симпл, то вот этот кусок:

Код: xml
1.
2.
3.
4.
5.
6.
7.
<roleManager enabled="true">
      <providers>
        <clear />
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="DefaultConnection" applicationName="/" />
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
      </providers>
    </roleManager>



не нужен.
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472536
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после того как убрал при входе в открытую только для одной роли area получаю:
provider: SQL Network Interfaces, error: 26 - Ошибка при обнаружении указанного сервера или экземпляра
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472548
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsch,

странно, у меня на симпле всё ок. посмотрите, есть ли в базе таблицы с префиксом webpages_
и есть установлен ли атрибут [InitializeSimpleMembership] у закрытых контроллеров (или он добавлен в глобальные фильтры).
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472611
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да не было [InitializeSimpleMembership]

теперь на локальной машине все заработало как и прежде.
а на хостинге нет.
когда заходишь в закрытую area то сначала предлагается авторизоваться
потом заходишь что-то секунд 30 делаешь все работает
через 30 секунд:

provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472621
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsch,

наверное у вас на локальном компе LocalDb, а на хостинге он не заводится. собственно так и должно быть.
создайте на сервере базу данных MS SQL или MS SQL Express и настройте подключение.
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472630
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет база тянется с хостинга
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472631
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да и как иначе я вообще могу залогиниться
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472636
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsch,

посмотрите,

есть ли в базе таблицы с префиксом webpages_
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472664
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть
webpages_membership
webpages_OAuthMembership
webpages_Roles
webpages_userInRoles
UserProfile

В табличках есть два пользователя
Обоим сопоставлено роль Admins
Которая в контролере указана как разрешенная к доступу

Логин происходит нормально и все работает 30 сек.
Провайдер советовал установить не изменяемые machinekey не помогло
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472695
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsch,

вы точно убрали секцию <roleManager enabled="true"> ?

в общем похоже на то, что приложение не может получить свои роли из базы данных. либо он пытается получить роли из стандартной AspNet реализации мембершипа.

и ещё. проапгрейдите Entity Framework до 5-ой версии. возможно симпл не хочет толком работать с версией 4 (как у вас). это очень вероятно.
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472710
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да точно убрано.
но почему же тогда 30 сек все работает,
и на локальном машине работает скольк угодно долго
надо попробовать еще другого провайдера
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472713
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsch,

проапрейдите Entity Framework. 4.4 это ж прошлый век. не удивлюсьь, если проблема в этом.
...
Рейтинг: 0 / 0
simplemembership mvc4 ограничить доступ к area
    #38472718
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsch,

вообще авторизация не должна слетать, даже если сервер перегружается каждый 5 сек. вся информация об аутентификации храниться в куках в шифрованном виде.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / simplemembership mvc4 ограничить доступ к area
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]