2009-06-29 26 views
2

我對asp.net和mvc非常陌生,所以我有點失落。最簡單的方法來保護整個文件夾(使用身份驗證)使用asp.net MVC和OpenID

我設法使用此Tutorial在我的應用程序中使用OpenID登錄。

但我不知道,如果只是設置會話[「聯繫」] =真就是遵循,到目前爲止我的代碼是這樣的正確的道路:

switch (openid.Response.Status) 
{ 
    case AuthenticationStatus.Authenticated: 
    if (openid.Response.ClaimedIdentifier.ToString() == Settings.Default.AdminClaimedIdentifier) 
     Session["Admin"] = true;         
    FormsAuthentication.RedirectFromLoginPage(openid.Response.ClaimedIdentifier, false); 
    break; 
    ... 
} 

的應用我想現在只需要一個管理員就可以編寫,而且我發現只需在設置中擁有此管理員的OpenID就很容易。

基本上我想要做的是在設置中擁有一個Admin的OpenID,並且它們基於這個認證保護了一個整個文件夾,所以它和子文件夾中的每個動作都需要Admin權限,如:〜/ Admin/whatever /編輯/ 1需要驗證。

這將是最簡單和最乾淨的方式來做這種認證?

回答

1

OpenID爲您提供身份驗證(您是誰?)作爲限制訪問「文件夾」或管理控制器的權限(您可以做什麼?)。

一個簡單的解決方案,也可以在未來爲您工作(根據您的需求)是使用RoleProvider,這將允許您使用Authorize屬性作爲griegs建議。

0

我不知道OpenId,但通常你會放置在您的控制器類的頂部以下鎖定整個文件夾,或在ActionResult鎖定該操作;

[Authorize(Roles="admin")] 

希望這會有所幫助。

+0

除非您將其與授權機制相結合,否則這將不起作用。 [Authorize]將起作用,即允許任何經過身份驗證的用戶,[Authorize(Roles =「admin」)]不會與上述代碼一起使用。 – veggerby 2009-06-29 12:08:16

相關問題