文档目录

本节内容:

简介

ABP通过nuget包Abp.Web.Mvc集成到Asp.net Mvc 控制器。你可以像往常那样创建普通的Mvc控制器,依赖注入可以对普通的Mvc控制器起作用,但你应当使你的控制继承自AbpController,它提供了许多好处和更好的集成到ABP。

AbpController基类

这是一个简单的继承自AbpController的控制器:

public class HomeController : AbpController
{
public ActionResult Index()
{
return View();
}
}

本地化 

ABP定义了L方法,使本地化更加容易,例如:

public class HomeController : AbpController
{
public HomeController()
{
LocalizationSourceName = "MySourceName";
} public ActionResult Index()
{
var helloWorldText = L("HelloWorld"); return View();
}
}

要先设置LocalizationSourceName,才能让L方法正常工作,你可以在你的控制器基类里设置,这样就不用为每个控制器重复设置。

其它

你可以使用预先注入的AbpSessionEventBusPermissionManager、PermissionCheckerSettingManagerFeatureManager、FeatureCheckerLocalizationManagerLoggerCurrentUnitOfWork等基属性。

过滤

异常处理和结果包装

所有的异常都被自动处理、日志并返回一个适应的响应给客户端,更多信息查看异常处理

如果Action的返回类型是JsonResult(或异步的Task<JsonResult>),ABP也会默认地去包装这个结果。

你可以通过给控制器或Action使用WrapResult和DontWrapResult特性来修改异常处理和结果包装,也可以在启动配置(using Configuration.Modules.AbpMvc()...)进行全局设置。更多信息查看ajax文档

审计日志

AbpMvcAuditFilter用来集成到审计日志系统,它在默认情况下记录所有对所有Action请求(如果审计没有被禁用),你可以用Audited和DisableAuditing特性控制Action和控制器的审计日志。

验证

AbpMvcValidationFilter自动检查ModelState.IsValid并在检测到非法时阻止Action执行。实现输入DTO的验证在验证文档里进行了描述。

授权

你可以为你的api控制器或Action使用AbpApiAuthorize特性,阻止未授权用户访问它们,例如:

public class HomeController : AbpController
{
[AbpMvcAuthorize("MyPermissionName")]
public ActionResult Index()
{
return View();
}
}

你可以为Action或控制器定义AllowAnonymous特性,废止认证/授权。AbpApiController也定义了一个在定义里检查许可的快捷方法IsGranted。

更多信息查看授权文档。

工作单元

AbpMvcUowFilter用来集成到工作单元系统,在一个Action执行前自动开始一个工作单元,并在Action执行结束后完成工作单元(如果没有异常抛出)。

你可为一个Action使用UnitOfWork特性,控制它的工作单元行为,你也可以在启动配置里为所有Action修改默认的工作单元特性。

防伪造

AbpAntiForgeryMvcFilter自动保护Mvc的Action,阻止来自CSRF/XSRF的POST、PUT和DELETE请求攻击。更多信息查看CSRF文档

模块绑定器

AbpMvcDateTimeBinder用来标准化通过Clock.Normalize方法输入的DateTime(和Nullable<DateTime>)。

最新文章

  1. 大数据之Yarn——Capacity调度器概念以及配置
  2. javascript的document中的动态添加标签
  3. @Html.Raw()
  4. HTML 5 音频
  5. 用Unity代码通过Xml配置生成GameObject之——前两天掉的坑
  6. 当我我们用new操作符创建对象的时候,都发生了些什么?
  7. GDB常用命令
  8. PHP循环语句基础介绍
  9. VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息。
  10. 慕客网laravel学习笔记
  11. 【转】如图,win7登陆界面,键盘失灵,没办法登陆。求解!如何在这个界面打开个鼠标可以点的软键盘
  12. C#之移动无标题栏窗体功能的实现!...
  13. location.href IE6 下不起作用的罪魁祸首
  14. Java实现Android,iOS设备实时监控
  15. c# throw和throw ex
  16. hbuilder中的wap2app (将M站快速转换成App的开发框架)使用过程有关原生标题的关闭
  17. PAT B1027 打印沙漏 (20 分)
  18. PAT甲题题解-1017. Queueing at Bank (25)-模拟
  19. C#正则过滤HTML标签并保留指定标签的方法
  20. Linux C:access()时间条件竞争漏洞

热门文章

  1. 用dubbo时遇到的一个序列化的坑
  2. SASS教程sass超详细教程
  3. Redis/HBase/Tair比较
  4. 【Python五篇慢慢弹】快速上手学python
  5. ASP.NET Core 中文文档 第四章 MVC(3.7 )局部视图(partial)
  6. C# 对象实例化 用json保存 泛型类 可以很方便的保存程序设置
  7. 中国CIO最关心的八大问题(下)
  8. Android开发学习—— Fragment
  9. GCC学习(1)之MinGW使用
  10. Xamarin中使用DatePickerDialog的相关问题