仅为一个页面授权所有用户的最佳做法

时间:2008-08-20 18:04:58

标签: asp.net authorization

在asp.net网站上将所有用户授权到一个页面的最佳方法是什么。

除了登录页面和另一个页面之外,我拒绝所有用户查看网站中的页面。

如何让所有用户都能访问此页面?

2 个答案:

答案 0 :(得分:5)

我一直在使用表单身份验证并创建必要的GenericIdentity和CustomPrincipal对象,这些对象允许我利用通常只能通过Windows身份验证获得的User.IsInRole类型函数。

在我的web.config文件中,我可以做类似的事情......

<location path="Login.aspx">
   <system.web>
      <authorization>
         <allow users ="*" />
      </authorization>
   </system.web>
</location>

<location path="ManagementFolder">
   <system.web>
      <authorization>
         <allow roles ="Administrator, Manager" />
      </authorization>
   </system.web>
</location>

答案 1 :(得分:-1)

我创建了一个基础“页面”类来处理那种事情。如果需要登录才能查看,我的所有页面都可以使用RequiresLogin属性进行修饰。如果该属性不存在,则所有人都可以访问该页面。

示例:

<RequiresLogin()> _ 
<RequiresPermission("process")> _
Partial Class DesignReviewEditProgressPage
    Inherits MyPage 'which inherits System.Web.UI.Page and deal with logins itself

    ...
End Class

MyPage类检查哪些属性被标记为自身,如果存在RequiresLogin,则会将您转发到登录页面。

我相信这可以适应你自己的问题。