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

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

发布时间:2020-12-16 09:58:08 所属栏目:asp.Net 来源:网络整理
导读:我有一个运行IIS 6的Web服务器,.NET MVC只有一个域名.该网站使用URL重写来生成以下URL: domain.com/controller/action 我想强制一(1)个控制器使用SSL(其他人应该在没有SSL的情况下工作).我该如何实现呢? 解决方法 用 RequireHttpsAttribute装饰需要SSL的控
我有一个运行IIS 6的Web服务器,.NET MVC只有一个域名.该网站使用URL重写来生成以下URL:

domain.com/controller/action

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

解决方法

用 RequireHttpsAttribute装饰需要SSL的控制器.

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

虽然,如果您使用Cassini进行调试,您可能更喜欢自定义版本忽略此问题来处理来自localhost的请求.

[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:" ) );
    }
}

(编辑:李大同)

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

    推荐文章
      热点阅读