我正在开发一个MVC 3 WIF应用程序,它与ADFS 2.0和AD交换声明。它的效果非常好,但有一个问题我似乎无法解决。
我想要做的是让匿名用户可以访问主页面(HomeController),当他们进入不同的页面时,他们将被重定向到ADFS-signin。我曾尝试在我的web.config中添加一个位置,当我手动输入http://localhost/Home
时它会起作用,但在我输入https://localhost
时则不行。
<location path="Home">
<system.web>
<authorization>
<allow users="?" />
</authorization>
<httpModules>
<add name="WSFederationAuthenticationModule" type="Microsoft.IdentityModel.Web.WSFederationAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="SessionAuthenticationModule" type="Microsoft.IdentityModel.Web.SessionAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</httpModules>
</system.web>
关于我如何能够解决这个问题的任何建议?
答案 0 :(得分:3)
强烈建议不要使用位置和授权web.config设置,因为它会在MVC应用程序中打开安全漏洞:
http://forums.asp.net/t/1583850.aspx/1/10
相反,您应该使用控制器或操作级别的[Authorize]
属性来确定应该授予哪些用户和角色访问权限。
对于您的问题,如果您没有指定[Authorize]
,则页面应允许匿名访问。