限制对某些 .aspx 页面的访问

发布于 2024-11-05 23:52:30 字数 171 浏览 0 评论 0原文

我的 asp.net Web 应用程序中有一些只有管理员才能看到的 .aspx 页面,以及所有用户都可以看到的一些 .aspx 页面。如何限制普通用户访问管理页面?

更重要的是,我没有实现来自 asp.net 的授权,我的意思是我自己使用会话和标志变量来实现身份验证。在这种情况下,如何根据权限将内容限制为用户?

I have some .aspx pages in my asp.net web application which only admin can only see and some .aspx pages which all users can see. How can i restrict normal users accessing the pages intended for admin ?

More over I'm not implementing the authorization from the asp.net what i mean to say is i'm implementing the authentication by myself using sessions and flag variables. How can i restrict content to users dependent on the privileges in this scenario ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

冰葑 2024-11-12 23:52:30

将这些页面放在自己的目录中,并使用该目录中的 web.config 来限制对它们的访问。

<configuration>
   <system.web>
      <authorization>
         <allow roles="Admins"/>
         <deny users="*"/>
      </authorization>
   </system.web>
</configuration>

不要重新发明轮子!

Put these pages in a directory of their own and use a web.config in this directory to restrict access to them.

<configuration>
   <system.web>
      <authorization>
         <allow roles="Admins"/>
         <deny users="*"/>
      </authorization>
   </system.web>
</configuration>

Do not reinvent the wheel!

酒解孤独 2024-11-12 23:52:30

我可能会创建一个自定义函数,当然是公共方法,其中包含基于角色的所有逻辑[正如您所提到的,您不想使用asp.net的成员资格功能]以允许拒绝用户访问页。此方法将检查页面的用户资格,为了更好的逻辑,您可以将所有页面的密钥保留在 web.Config 中。

您可以在现在创建键

   <appsetting>


 <add key="Page1" value="ViewOrders.aspx"/>
<add key="Page2" value="DeleteOrders.aspx"/>

,您可以在方法中创建 for/foreach 循环来迭代页面名称的键值。我这样说是因为您以后添加页面并相应地分配它们的角色会更容易。

编辑

也许,您想看到这个http://mywsat.codeplex.com/

I would probably create a custom function, of course public method, which contains all the logic based on the roles [as you have mentioned that you don't want to go with membership feature of asp.net] to allow deny the user to access pages. This method will check the user eligibility for the page, for better logic you can keep the key for all pages in web.Config.

You can create the key in

   <appsetting>


 <add key="Page1" value="ViewOrders.aspx"/>
<add key="Page2" value="DeleteOrders.aspx"/>

Now, you can create a for/foreach loop in the method to iterate key value for the page name. I said this because it will be easier for you to add pages later and assign them roles accordingly.

Edit

Perhaps, you would like to see this http://mywsat.codeplex.com/

零度℉ 2024-11-12 23:52:30

如果您使用自己的角色提供程序,您可能需要创建一个自定义角色提供程序,并让它从会话中返回用户的角色,这样可能能够弥补这两个差距......

HTH。

If you are using your own, you may want to create a custom role provider, and have it return roles for the user from session, that may be able then to bridge both gaps...

HTH.

就像说晚安 2024-11-12 23:52:30

知道这有点旧,但以防万一其他人正在使用会员资格。在 web.config 中使用它:

<configuration>
  <!-- Only administrators may access AdminTools.aspx -->
  <location path="AdminTools.aspx">
    <system.web>
      <authorization>
        <allow roles="Administrators" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>
</configuration>

参考:使用 C# VB 构建您自己的 ASP.NET 2.0 网站,第二版
克里斯蒂安·戴尔、扎克·鲁瓦尔卡巴

Know this is a bit old but just in case someone else is using Membership. Use this in your web.config:

<configuration>
  <!-- Only administrators may access AdminTools.aspx -->
  <location path="AdminTools.aspx">
    <system.web>
      <authorization>
        <allow roles="Administrators" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>
</configuration>

reference: Build Your Own ASP.NET 2.0 Web Site Using C# VB, Second Edition
Christian Daire, Zak Ruvalcaba

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文