相关疑难解决方法(0)

ASP.NET MVC RequireHttps仅适用于生产

我想使用RequireHttpsAttribute来防止将不安全的HTTP请求发送到操作方法.

C#

[RequireHttps] //apply to all actions in controller
public class SomeController 
{
    [RequireHttps] //apply to this action only
    public ActionResult SomeAction()
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

VB

<RequireHttps()> _
Public Class SomeController

    <RequireHttps()> _
    Public Function SomeAction() As ActionResult
        ...
    End Function

End Class
Run Code Online (Sandbox Code Playgroud)

不幸的是,ASP.NET Development Server不支持HTTPS.

如何在发布到生产环境时使我的ASP.NET MVC应用程序使用RequireHttps,而不是在ASP.NET Development Server上的开发工作站上运行时?

asp.net-mvc ssl https visual-studio

121
推荐指数
6
解决办法
4万
查看次数

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万
查看次数

POST信用卡数据从View到Controller是否安全?

需要将View中的一些CC数据提交给控制器进行处理,我可以只发布它还是有一些常用的方法来保护传输中的数据?

security asp.net-mvc post credit-card

6
推荐指数
1
解决办法
985
查看次数

ASP.NET MVC - 如何重定向安全?

我有一个工作正常的MVC应用程序,但我现在想要在应用程序中添加一个SSL站点.

这是IIS中的一个单独的站点,带有SSL证书,但是为了重用,我只是将SSL站点指向与常规站点相同的目录.

我现在要做的是,如果他们进入安全网址,则将用户引导到某个控制器(付款).否则,他们可以继续保持现状.

做这个的最好方式是什么?

路由?过滤器?自定义BaseController?

我怎样才能确保无论他们尝试什么路线,如果他们的Request.Url.Host是我的安全网址,那么他们将被重定向.将来,如果我添加新的控制器和操作,我不想把它放在每个控制器中.

是否有一种应用程序范围的方法,如果找到某个URL,我可以告诉所有控制器重定向?

asp.net-mvc ssl redirect

5
推荐指数
1
解决办法
1697
查看次数