相关疑难解决方法(0)

什么是ASP.NET MVC中基本控制器类的优秀候选者?

我见过很多人谈论在他们的ASP.NET MVC项目中使用基本控制器.我见过的典型例子就是记录或者CRUD脚手架.基本控制器类有哪些其他好的用途?

asp.net-mvc controller base-class

27
推荐指数
2
解决办法
1万
查看次数

这个基本控制器ASP.NET MVC 3中的自定义主体是非常低效的吗?

尽管我已经在这里待了一段时间,但这是我第一次提出问题,所以请温柔地对待我.

我正在使用ASP.NET MVC 3,我想创建一个自定义,Principal所以我可以存储更多关于当前用户的信息,而不是标准,因此不必经常访问数据库.这是我追求的相当标准的东西.我们先说一下电子邮件地址和用户ID.

我决定将对象存储在缓存中,因为我知道不建议将它存储在会话中.

我也不想继续构建User对象,所以我想覆盖User控制器中的对象.所以我可以去User.UserId保证一些东西.

所以我创建了一个这样的自定义主体:

public class MyPrincipal : IPrincipal
{
    public MyPrincipal(IIdentity ident, List<string> roles, string email, Guid userId)
    {
        this._identity = ident;
        this._roles = roles;
        this._email = email;
        this._userId = userId;
    }

    IIdentity _identity;

    public IIdentity Identity
    {
        get { return _identity; }
    }

    private List<string> _roles;

    public bool IsInRole(string role)
    {
        return _roles.Contains(role);
    }

    private string _email;

    public string Email
    {
        get { return _email; …
Run Code Online (Sandbox Code Playgroud)

c# authentication performance iprincipal asp.net-mvc-3

10
推荐指数
1
解决办法
1万
查看次数

MVC5身份验证:在每个控制器或基本控制器上授权属性

我一直在研究保护MVC 5应用程序的最佳方法.

我们有一个带有许多WebAPI控制器的Web.csproj以及一个有两个区域的MVC站点 - 一个用于Admin,然后用于面向公众的网站.

阅读本文说明基本控制器是最好的方法,我决定采用这种方法.

但是,我个人对使用基本控制器并不行(对于我的一些推理,请参阅此stackoverflow答案).

因此,鉴于我正在使用MVC 5(ASP.Net身份和OWIN身份验证) - 任何人都可以了解每种方法的优缺点吗?

authorize-attribute owin asp.net-mvc-5 asp.net-identity

6
推荐指数
1
解决办法
1万
查看次数

使用构造函数继承基本控制器

我正在使用ninject来注入我的存储库.我想要继承我的基类,但我不能因为它有一个构造函数.

基础控制器:

namespace Orcha.Web.Controllers
{
    public class BaseController : Controller
    {
        public IRepository<string> db;

        public BaseController(Repository<string> db){
            this.db = db;
            Debug.WriteLine("Repository True");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

具有继承的控制器: 错误'BaseController'不包含带有0个参数HomeController.cs的构造函数

public class HomeController : BaseController
{

    public ActionResult Index()
    {
        ViewBag.Message = "Welcome to ASP.NET MVC!";

        return View();
    }

    public ActionResult About()
    {
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

ninject ninject.web.mvc asp.net-mvc-3

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