[英]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.