gpt4 book ai didi

asp.net - 作为事后的想法在 ASP.NET Web App 中实现安全性

转载 作者:行者123 更新时间:2023-12-04 05:44:24 24 4
gpt4 key购买 nike

与许多现实世界的应用程序一样,安全性(登录名/密码)只是为了授予/拒绝对完整应用程序的访问权限。现在客户端要求细粒度的安全性,例如某些网页应该只能查看,某些用户可以删除其他不能等。
基本上客户要求以下内容。

有效权限::用户-->网页-->访问类型 (查看、创建/编辑、删除)

申请详情

  • ASP.NET/C#
  • 用于 Biz 数据的 MSSQL Server 2008
  • 用于用户/密码/配置文件/日志的 SQLCE
  • 用于主 UI 的 Ext.NET

  • 我们讨论了最好增强 security.sdf 文件并有一个屏幕(网页)表和一个用户+屏幕+一个表示访问类型的数字的连接表,即
  • 1:阅读
  • 2:写信
  • 4:删除

  • 这些可以使用按位运算符进行检查。该应用程序使用 ASP.NET 模拟来访问 MSSQL2008

    问题是如何在web应用中实现它?

    如果有人有更好的想法请分享!!!

    最佳答案

    您可以使用 IsInRole功能并将您的用户分类为角色。每个角色都可以有一些只能完成的 Action 。因此,通过询问女巫角色是用户,您可以让他做或不思考。

    HttpContext.Current.User.IsInRole("Role")

    或者你可以反过来做,询问这个 Action 是否适用于这个角色,这里是一个简单的对象,有权限和检查。
    public enum csPermissions
    {
    pActionDelete = 1,
    pActionEdit = 2 ,
    // more names...
    }

    private int[] AdminPermission = {
    (int)csPermissions.pActionEdit,
    (int)csPermissions.pActionDelete,
    // more permissions...
    };

    private int[] BackOfficePermission = {
    (int)csPermissions.pActionEdit,
    // more permissions...
    };

    public static bool IsThisAllowed(csPermissions AskPermitForThisAction)
    {
    // questions here for all users roles...
    // here is only an example
    if (HttpContext.Current.User.IsInRole("Administator")))
    {
    for (int i = 0; i < AdminPermission.Length; i++)
    if (AdminPermission[i] == (int)AskPermitForThisAction)
    return true;
    }

    // no permission found
    return false;
    }

    关于asp.net - 作为事后的想法在 ASP.NET Web App 中实现安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10880286/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com