有什么区别?什么是最好的?
V1:
[PrincipalPermission(SecurityAction.Demand,Role="MyRole")]
public class MyPage: Page
{}
V2:
<authorization>
<allow roles="MyRole" />
</authorization>
答案 0 :(得分:2)
这些似乎是2个不相关/不可比的东西。
根据这个:http://msdn.microsoft.com/en-us/library/system.security.permissions.principalpermissionattribute.aspx,该属性用于限制哪些用户可以执行代码。
web.config中的元素authorization
用于限制哪些[浏览器]用户可以访问网站为其提供内容的URL。
你通常不会在你的asp.net应用程序中随时随地想要这个属性 - 如果是其他任何东西,那么因为你的网络应用程序是由一个用户帐户(应用程序池用户)执行的,除非你是冒充一些其他用户访问某些资源,你甚至都没有机会使用它(即便如此)。我看到该属性在某些桌面应用程序中可能有用。也许。
编辑:小添加/更正/澄清:我想如果您使用Windows身份验证,并在web.config中使用<identity impersonate="true"/>
作为代表 windows 用户帐户执行代码的方式,然后该属性可能用于保护某些类/方法的使用/调用 - 但我们通常/仍然在web.config中使用authorization
来保护对某些用户组的url访问,以及启用/禁用的条件某些用户组的功能。尽管我认为我现在理解了该属性的目的,但我怀疑在这种情况下(win-auth +模仿)我会被诱惑使用它[均匀]。 1