Как разрешить анонимный доступ только одному контроллеру? - PullRequest
3 голосов
/ 24 ноября 2011

Я использую MVC 2.0 с аутентификацией форм. Я хочу разрешить публичный доступ к одному контроллеру под названием «Выход из системы». В настоящее время всякий раз, когда я просматриваю его, я получаю приглашение войти в систему.

<authentication mode="Forms">
  <forms loginUrl="Login/Login"  
         protection="All" timeout="30"
         name=".ASPXAUTH" 
         path="/" 
         requireSSL="false" 
         slidingExpiration="true"
         defaultUrl="Token/Create" 
         cookieless="UseDeviceProfile" 
         enableCrossAppRedirects="false" />
</authentication>

<!-- Deny Anonymous users. -->
<authorization>
  <deny users="?" />
</authorization> 

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

Ответы [ 2 ]

3 голосов
/ 24 ноября 2011

Как упоминалось в SLaks, незарегистрированному пользователю не требуется доступ к действию выхода из системы.Но если вы хотите разрешить анонимный доступ к контроллерам / действиям, вы должны включить его в своем Web.Config:

<location path="~/Logout">
  <system.web>
    <authorization>
      <allow users="?" />
    </authorization>
  </system.web>
</location>

Лучший подход для чистого приложения MVC - использовать атрибут Authorize иразрешить доступ всем пользователям в web.config.

2 голосов
/ 24 ноября 2011

вам лучше использовать атрибуты на ваших контроллерах и / или действиях контроллеров, чем указывать авторизацию в конфигурации. [Авторизуйтесь] для действий, которые вы хотите ограничить только для аутентифицированных пользователей, а затем те, у кого нет атрибута, становятся общедоступными.

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