小编Sig*_*ray的帖子

处理ASP.NET MVC应用程序中的记录/实体级安全性

每个人都在做什么来处理ASP.NET MVC应用程序中单个记录的安全性(检索和修改)?此应用程序具有与Web用户界面完全独立的服务/业务层和数据访问层.我已经在使用成员资格和角色提供程序来处理我的应用程序中特定区域/功能的身份验证和授权,但现在我需要保护个人记录.

例如,假设Bob可以创建和编辑自己的FooBar记录.我想确保其他用户无法查看或编辑Bob的记录.我想防止URL操作和/或编程错误.我们可能还希望允许Bob与其他用户共享他的FooBars,允许他们查看但不能编辑他的记录.

我提出了几种方法:

  • 在数据访问层中进行安全性检查,直接在检索和修改查询中进行.
  • 在继续使用业务逻辑之前,请检查服务层中的安全性,执行额外的安全性查询.
  • 创建UI和服务层之间存在的安全层.UI将通过安全层发出所有请求.
  • 使用面向方面编程(AOP).创建安全性方面并使用安全属性修饰服务层方法.

我在之前的项目中已经在数据访问层(在查询中)中完成了安全性,并且它总是变得一团糟.我想知道其他人在做什么,以及你用什么框架来帮助你(AOP框架.)

c# asp.net security asp.net-mvc aop

15
推荐指数
1
解决办法
3236
查看次数

创建xml文档时的默认命名空间

是否可以使用XmlDocument.CreateElement()和XmlNode.AppendChild()创建子项而不指定命名空间并让它使用"默认"命名空间?

目前,如果我使用命名空间创建根节点并且未在每个子节点上指定命名空间,则输出xml将定义空命名空间.

如果我没有为我创建的每个元素指定命名空间,下面是生成的内容.是否有一个快捷方式,我不必每次都指定命名空间?

<root xmlns="http://example.com">
  <child1 xmlns="">
    <child2 />
  </child1>
</root>
Run Code Online (Sandbox Code Playgroud)

码:

XmlDocument doc = new XmlDocument();
var rootNode = doc.CreateElement("root", "http://example.com");
doc.AppendChild(rootNode);
var child1Node = doc.CreateElement("child1");
rootNode.AppendChild(child1Node);
var child2Node = doc.CreateElement("child2");
child1Node.AppendChild(child2Node);
Run Code Online (Sandbox Code Playgroud)

c# xml

3
推荐指数
1
解决办法
5657
查看次数

标签 统计

c# ×2

aop ×1

asp.net ×1

asp.net-mvc ×1

security ×1

xml ×1