【问题标题】:IIS7.5 and MVC 2 : Implementing HTTP(S) securityIIS7.5 和 MVC 2:实现 HTTP(S) 安全性
【发布时间】:2010-04-20 08:38:20
【问题描述】:

这是我的第一个 ASP.NET MVC 应用程序,也是我第一个安装 IIS 7.x 的应用程序,我必须在标准之外做任何事情。

我需要对 /Index 和 /feeds/xxx.svc 页面/服务强制执行 Windows 身份验证。在 ASP.NET Web 窗体中,我将对文件应用 Windows 权限并删除 IIS 6 中的匿名身份验证。这需要在 HTTP/S 上工作,但不用担心,手头有。

在 MVC/IIS 7 中会发生什么?

我尝试修改 /Index.aspx 视图的权限,这似乎阻止了访问。它要求我输入用户名/密码,但当我输入有效的用户名/密码时不授予访问权限。按 Escape 会给我一个异常“**访问路径 'E:\dev\xxx\xxx.ConsultantRegistration.Web.Admin\Views\ConsultantRegistration\index.aspx' 被拒绝。**”,它确实作为401.

因此,尽管 Index.aspx 视图中确实存在用户名/密码,但我无法使用这些凭据访问所述视图。

我的 web.config 中有:

我错过了什么?

【问题讨论】:

    标签: asp.net-mvc security iis-7


    【解决方案1】:

    不要设置文件权限。而是在 IIS 中启用您网站中的 WindowsAuthentication 提供程序,并在控制器操作上添加 [Authorize] 属性。您可以像这样进一步过滤有权访问这些页面的用户:

    [RequireHttps, Authorize(Users="MyUser")]
    public ActionResult Index()
    {
        return View();
    }
    

    【讨论】:

    • 非常感谢。这就是我的困惑。我在 web.config 中添加了 [Authorise] 和以下内容:(显然格式会很糟糕,但是嘿):
    猜你喜欢
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多