相关疑难解决方法(0)

ASP.NET MVC下的SSL页面

如何在基于ASP.NET MVC的站点中的某些页面上使用HTTPS?

史蒂夫桑德森有一个非常好的教程,如何在预览4上以干燥方式执行此操作:

http://blog.codeville.net/2008/08/05/adding-httpsssl-support-to-aspnet-mvc-routing/

预览5有更好/更新的方式吗?

asp.net asp.net-mvc ssl https

80
推荐指数
4
解决办法
5万
查看次数

MVC RequireHttps整个网站

我已经阅读了之前关于使用RequireHttpsAttribute保护单个控制器的帖子:

ASP.NET MVC RequireHttps仅适用于生产

但有没有办法将其应用到整个网站?由于我的主机(discountasp.net)我不能使用"RequireSSL IIS"设置.

asp.net-mvc ssl

62
推荐指数
5
解决办法
3万
查看次数

启用S​​SL时,IIS Express默认为端口44300 for https

当您最初设置IIS Express以启用SSL时,它会将端口默认为44300.不幸的是,当我尝试访问我的网站时,https://localhost/它不起作用,除非我使用端口号44300 - https://localhost:44300/.

使用以下内容生成链接:

<%= Html.ActionLink("Index", "Index", "Home", new { @action = "https://" + Request.Hostname + Url.Action("Index", "Home") }) %>
Run Code Online (Sandbox Code Playgroud)

虽然这是一个丑陋的解决方案,但@action关键字可以覆盖生成的路由,但这意味着应用程序似乎需要知道任何非标准端口(例如44300).

问题在于我会写一些东西来解决只会在开发环境中出现的问题.

所以我的问题是......如何将端口更改为443并让IIS Express像这样?

我的网站配置如下:

<site name="MySite" id="2" serverAutoStart="true">
  <application path="/">
    <virtualDirectory path="/" physicalPath="C:\Inetpub\MySite" />
  </application>
  <bindings>
    <binding protocol="http" bindingInformation=":80:" />
    <binding protocol="https" bindingInformation=":44300:" />
  </bindings>
</site>
Run Code Online (Sandbox Code Playgroud)

提前谢谢了.

更新:

Divya已经在IIS论坛上回答了这个问题.

asp.net-mvc ssl https iis-express

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

ASP.NET MVC:如何在localhost上自动禁用[RequireHttps]?

我希望我的登录页面只是SSL:

    [RequireHttps]
    public ActionResult Login()
    {
        if (Helper.LoggedIn)
        {
            Response.Redirect("/account/stats");
        }

        return View();
    }
Run Code Online (Sandbox Code Playgroud)

但显然,当我开发和调试我的应用程序时,它无法在localhost上运行.我不想将IIS 7与SSL证书一起使用,如何自动禁用RequireHttps属性?

更新

基于StackOverflow用户和ASP.NET MVC 2源代码提供的信息,我创建了以下类来解决问题.

public class RequireSSLAttribute : FilterAttribute, IAuthorizationFilter
{
    public virtual void OnAuthorization(AuthorizationContext filterContext)
    {
        if (filterContext == null)
        {
            throw new ArgumentNullException("filterContext");
        }

        if (!filterContext.HttpContext.Request.IsSecureConnection)
        {
            HandleNonHttpsRequest(filterContext);
        }
    }

    protected virtual void HandleNonHttpsRequest(AuthorizationContext filterContext)
    {
        if (filterContext.HttpContext.Request.Url.Host.Contains("localhost")) return;

        if (!String.Equals(filterContext.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase))
        {
            throw new InvalidOperationException("The requested resource can only be accessed via SSL");
        }

        string url = "https://" + filterContext.HttpContext.Request.Url.Host …
Run Code Online (Sandbox Code Playgroud)

iis debugging asp.net-mvc ssl localhost

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

ASP.NET MVC RequireHttps

如何使用ASP.NET MVC 2 Preview 2 Futures RequireHttps属性?

我想防止将不安全的HTTP请求发送到操作方法.我想自动重定向到HTTPS.

MSDN:

我该如何使用此功能?

asp.net-mvc ssl https asp.net-mvc-futures asp.net-mvc-2

12
推荐指数
2
解决办法
9326
查看次数

混合的http/https网站

到目前为止,我的https部署通常涉及使用https对整个站点的简单锁定,并在Web服务器上提供http-to-https重定向.

我现在计划在一个包含http和https页面的单个ASP.NET MVC站点(在云上).因此,该站点将有2个概念(非物理)区域,提供安全和非安全请求.

在配置方面,我已经为80和443设置了输入端口,并且该站点接受这两个请求.

有什么方法可以将协议转换为https,以进行属于安全区域的操作的任何调用吗?例如,动作过滤器可以执行的操作.

非常感谢.

编辑: 请注意,这样做的全部意图是避免在表单操作属性上使用绝对URL,因为可移植性问题以及用户将不会在浏览器上看到https://保证可视提示.

P

cloud asp.net-mvc https azure

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

如何在调试期间为所有方法禁用[RequireHttps]?

我有一些MVC2网站有很多[RequireHttps].

但是当我调试它时,我必须在不同的地方(控制器)评论它们中的许多.代码准备好后,我必须删除所有注释.

所以需要时间,有时我忘了取消注释[RequireHttps]:)

我的问题是哪个是解决此问题的最佳做法?

谢谢!

.net c# asp.net-mvc-2

5
推荐指数
2
解决办法
929
查看次数

如何关闭MVC.NET版本2的RequireHttps属性?

我看到MVC.NET的第2版现在有一个RequireHttps属性,这对我很有用.然而,什么是关闭效果的好策略?例如,我想在某些页面上使用Https,但在其他页面上使用常规Http.我应该创建自己的RequireHttp属性吗?

编辑:我使用自己的RequireHttp属性,它工作正常,但我想知道在MVC.NET版本2中是否有一些我缺少的内置功能.

编辑2:我一定不清楚.我的问题涉及以下内容:如果您使用RequireHttps,那么之后的任何请求都将超过Https,即使Controller或Action未使用RequireHttps进行修饰.除非我弄错了,否则你需要第二个属性,例如RequireHttp,将请求重定向到Http而不是Https.

asp.net-mvc

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