加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何测试ASP MVC应用程序以获得基于用户的安全性

发布时间:2020-12-16 07:14:03 所属栏目:asp.Net 来源:网络整理
导读:我已经为我的域对象编写了一段时间的测试,但是我仍然不太确定如何在我的web项目中测试安全性.某些环境中的某些用户可以访问我的模型的某些属性等,但您将如何进行测试呢?现在,我基于当前经过身份验证的用户,但我将如何注入假身份验证提供程序? 这可能是一个
我已经为我的域对象编写了一段时间的测试,但是我仍然不太确定如何在我的web项目中测试安全性.某些环境中的某些用户可以访问我的模型的某些属性等,但您将如何进行测试呢?现在,我基于当前经过身份验证的用户,但我将如何注入假身份验证提供程序?

这可能是一个愚蠢的问题,但如果有人能帮我摆脱测试的黑暗时代,那将非常感激.

解决方法

这个链接是单向的,但使用模拟更好:

Mock<ControllerContext> MockContext(string userName)
    {
        var mockContext = new Mock<ControllerContext>();
        // mock an authenticated user
        mockContext.SetupGet(p => p.HttpContext.User.Identity.Name).Returns(userName);
        mockContext.SetupGet(p => p.HttpContext.User.Identity.IsAuthenticated).Returns(true);
        return mockContext;
    }

    [TestMethod]
    public void DinnersController_Delete_Should_Fail_With_InvalidOwner_Given_Wrong_User()
    {
        //set by default
        var mockContext = MockContext("scottha");

        // mock an authenticated user
        _dinnerController.ControllerContext = mockContext.Object;

        ViewResult result = _dinnerController.Delete(1,"") as ViewResult;
        Assert.AreEqual("InvalidOwner",result.ViewName);
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读