2012-08-16 14 views
0

在我的MVC應用程序中,我使用WIF。我已經使用Visual Studio內置工具添加了STS參考。 FedUtil已經產生了一些條目在web.config中:WIF與MVC中的AuthorizeAttribute進行關聯,以限制某些頁面的訪問限制

<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?任何線索?

+0

你確定'[Authorize]'屬性是否導致該問題?將其刪除併發生問題? – wal 2012-08-16 11:22:42

+0

我不知道你是否清楚地知道我在問什麼。 Mabye我的問題不清楚。我想讓它與這個屬性一起工作(在使用此屬性訪問操作時使用WIF提供的消息登錄表單),或者至少限制對特定頁面(而不是整個站點)的訪問,而不使用此屬性以任何其他方式訪問。 – jwaliszko 2012-08-16 12:25:06

+0

我暗示該特定屬性不會導致您的主頁需要驗證。就像woloski所說的那樣 – wal 2012-08-16 13:25:30

回答

2

當您運行添加STS參考時,該向導將添加自動化部分並拒絕匿名用戶。刪除。

<authorization> 
    <deny users="?" /> 
</authorization>