0

在我的 MVC 应用程序中,我使用的是 WIF。我使用 Visual Studio 内置工具添加了 STS 参考。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 关联并仅授权我需要的内容?也许我需要在 web.config 或 STS 中的某处添加 app.something.com/profile/index ?有什么线索吗?

4

1 回答 1

2

当您运行添加 STS 引用时,向导将添加授权部分并拒绝匿名用户。删除它。

<authorization>
  <deny users="?" />
</authorization>
于 2012-08-16T13:03:31.473 回答