Asp.net

在 web.config 中授權屬性與授權節點

  • July 4, 2011

我知道我可以使用 web.config 中的授權標記來限制對 ASP.NET MVC 3 應用程序的訪問

<authentication mode="Windows"></authentication>
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" />
<授權>
<allow roles="MyDomain\MyGroup" />
<拒絕使用者="*" />
<拒絕使用者=“?” />
</授權>

或者用一個裝飾控制器基類

$$ Authorize() $$屬性(甚至使用自定義 Authorize 屬性)

[AdminOnly]
public class BaseController : Controller{}

問題是:它們是替代方法和等效方法嗎?我應該總是使用一種方法而不是另一種嗎?我應該記住哪些元素?

我知道我可以使用 web.config 中的授權標記來限制對 ASP.NET MVC 3 應用程序的訪問

不,不要在 ASP.NET MVC 中使用它。

問題是:它們是替代方法和等效方法嗎?

不,它們不是替代品。您不應<authorization>在 ASP.NET MVC 應用程序中使用 web.config 中的標記,因為它基於路徑,而 MVC 與控制器操作和路由一起使用。在 ASP.NET MVC 中進行授權的正確方法是使用[Authorize]屬性。

引用自:https://stackoverflow.com/questions/6571597