簡體   English   中英

動態路徑的ASP.NET MVC授權

[英]ASP.NET MVC Authorization for a dynamic path

我正在使用ASP.NET MVC進行表單身份驗證。 在應用程序級別的web.config中,我可以將需要身份驗證的路徑設置如下:

<location path="subdir1">
<system.web>
    <authorization>
        <allow users ="?" />
    </authorization>
</system.web>
</location>

subdir1是“視圖”文件夾中的文件夾名稱。 這適用於將網頁路由為siteurl.com/subdir1

但是,如果我的subdir1在另一個動態創建的路由下,則此設置不起作用。 例如; siteurl.com/dynamic/subdir1不請求身份驗證。 動態是在運行時創建的,而web.config在應用程序啟動時並不知道它,但它不關心它,我只希望它在有對subdir1路由的訪問權時就要求身份驗證。

在這種情況下,有什么方法可以設置位置的path屬性? 還是您有其他解決方法?

任何幫助,將不勝感激。 卡薩薩卡爾

您可以通過在適當的操作或控制器上使用Authorize屬性來控制授權。

[Authorize]
public ActionResult MyAction()
{
   //stuff
}

可以在ASP.NET MVC授權中找到更多信息。

您應該在控制器/操作上使用AuthorizeAttribute ,而不是在web.config文件中為映射到控制器的路由設置訪問權限。 如果並非所有動作都需要登錄用戶,則只需將屬性應用於需要授權的動作(方法)。

[Authorize]
public class ProtectedController : Controller
{
    // all actions in this controller require the user to be logged in
}

public class MixedController : Controller
{
    [Authorize]
    public ActionResult ProtectedAction()
    {
        // this action requires the user to be logged in
    }

    public ActionResult PublicAction()
    {
       // this action is available to anonymous users
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM