В моем приложении MVC я использую WIF. Я добавил ссылку STS, используя встроенный инструмент Visual Studio. FedUtil сгенерировал несколько записей в web.config:
<microsoft.identityModel>
<service>
<claimsAuthenticationManager type="Social.Core.Security.RolesAwareClaimsAuthenticationManager, Social.Core" />
<audienceUris>
<add value="http://app.something.com/" />
</audienceUris>
...
Как видите, дополнительно я написал собственный ClaimsAuthenticationManager, чтобы добавить некоторые утверждения к уже полученным от STS.
Тем не менее, в приложении у меня есть страница с ограничениями:
public class ProfileController : BaseController
{
[Authorize]
public virtual ActionResult Index()
{
// restricted area
}
}
Я добавил AuthorizeAttribute в действие с ограниченным доступом. Мне нужна аутентификация только при входе на app.something.com/profile/index. К сожалению, теперь форма входа отображается при входе в любую часть приложения, например на главную страницу app.something.com.
Как сопоставить аутентификацию WIF с AuthorizeAttribute и авторизовать только то, что мне нужно? Может быть, мне нужно добавить app.something.com/profile/index где-нибудь в web.config или в STS? Любые подсказки?
[Authorize]
? удалить его и проблема возникает? - person wal   schedule 16.08.2012