asp.net-mvc - .NET-MVC - 通过 SSL 重写 URL + 某些 URL?

标签 asp.net-mvc ssl

我有一个运行 IIS 6、.NET MVC 的网络服务器,只有一个域名。该站点使用 URL 重写来生成如下 URL:

domain.com/controller/action

我想强制一 (1) 个 Controller 使用 SSL(其他 Controller 应该在没有 SSL 的情况下工作)。 我应该如何实现?

最佳答案

RequireHttpsAttribute 修饰需要 SSL 的 Controller .

[RequireHttps]
public class SecureController : Controller
{
   ...
}

不过,如果您使用 Cassini 进行调试,您可能更喜欢忽略本地主机请求的自定义版本。

[AttributeUsage( AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = false )]
public class RemoteRedirectToHttpsAttribute : RequireHttpsAttribute
{
    public override void OnAuthorization( AuthorizationContext filterContext )
    {
        if (filterContext == null)
        {
            throw new ArgumentNullException( "filterContext" );
        }

        if (filterContext.HttpContext != null && (filterContext.HttpContext.Request.IsLocal || filterContext.HttpContext.Request.IsSecureConnection))
        {
            return;
        }

        filterContext.Result = new RedirectResult( filterContext.HttpContext.Request.Url.ToString().Replace( "http:", "https:" ) );
    }
}

关于asp.net-mvc - .NET-MVC - 通过 SSL 重写 URL + 某些 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3072814/

相关文章:

java - JDBC 使用 SSL 连接到 Oracle 数据库

java - 证书中未定义的 CommonName

ruby-on-rails - OpenSSL::SSL::SSLError in UsersController#create (SSL_connect returned=1 errno=0 state=unknown state: unknown protocol)

phpmailer 与交换和没有 SSL 或 TLS

c# - Html.ListBoxFor() 的 ASP.NET MVC 问题

asp.net-mvc - 调用 dropdownlist 所选值作为 @html.action 路由值

c# - mvc5 : Cannot access a disposed object. asp.net mvc5 使用统一

c# - 如何以编程方式在 ASP.NET MVC 5 中注册角色提供程序?

c# - 对派生的 mvc 模型使用单一 View

java - Jetty 是否可以配置为提供 AWS Certificate Manager 证书?