- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用这段取自 MVC futures 的代码,并将 Attribute RequireSsl 附加到一个操作。它适用于简单的 Url,如 http://localhost/de/Account/Login ,但是如果我有一个查询字符串,问号会被 url 编码并且请求失败。
http://localhost/de/Account/Login?test=omg重定向到 https://localhost/de/Account/Login%3Ftest=omg .有人让这个工作吗?
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = false)]
public sealed class RequireSslAttribute : FilterAttribute, IAuthorizationFilter
{
public RequireSslAttribute()
{
Redirect = true;
}
public bool Redirect { get; set; }
public void OnAuthorization(AuthorizationContext filterContext)
{
//Validate.IsNotNull(filterContext, "filterContext");
if (!Configuration.EnableSSL) return;
if (!filterContext.HttpContext.Request.IsSecureConnection)
{
// request is not SSL-protected, so throw or redirect
if (Redirect)
{
// form new URL
UriBuilder builder = new UriBuilder
{
Scheme = "https",
Host = filterContext.HttpContext.Request.Url.Host,
// use the RawUrl since it works with URL Rewriting
Path = filterContext.HttpContext.Request.RawUrl
};
filterContext.Result = new RedirectResult(builder.ToString());
}
else
{
throw new HttpException((int)HttpStatusCode.Forbidden, "Access forbidden. The requested resource requires an SSL connection.");
}
}
}
}
最佳答案
我改变了
UriBuilder builder = new UriBuilder
{
Scheme = "https",
Host = filterContext.HttpContext.Request.Url.Host,
// use the RawUrl since it works with URL Rewriting
Path = filterContext.HttpContext.Request.RawUrl
};
致
UriBuilder builder = new UriBuilder
{
Scheme = "https",
Host = filterContext.HttpContext.Request.Url.Host,
Path = filterContext.HttpContext.Request.Url.LocalPath,
Query = filterContext.HttpContext.Request.Url.PathAndQuery
};
我现在不使用 Url Rewriting,所以我认为这对我来说是安全的。
关于asp.net-mvc - RequireSSL 在带有 Querystring 的 Url 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1654320/
我在 IIS 7.5 中有一个实时网站。我可以使用 http 协议(protocol)正确登录到我的站点,直到我在 Web.config 中添加以下行: httpCookies httpOnlyCoo
注意:这不是与 [RequireSSL] 属性相关的 ASP.NET MVC 问题。那是完全不同的 - 只是名称相同。 ASP.NET Forms 身份验证具有 RequireSSL属性要求 ASP.
现在我们已将主机从 Win2K3/IIS6 升级到 Win2k8R2/IIS7.5,我从 IIS 站点看到了奇怪的响应。 ASP.Net 版本 4.0 我们有一个非常复杂和成熟的 Web 应用程序,它
我们为我们的应用程序提供了三种不同的环境,例如测试、SIT 和生产。在测试中,我们有 HTTP,其余两个我们有 HTTPS。 为了给 cookie 设置安全属性,我们在 Web.config 文件中添
如果我的登录页面是 https,Web 配置的表单选项卡中的“requireSSL”是否为真是否重要? 目前我正在使用 IIS 将页面重定向到 HTTPS。当我设置 requiressl 时,它似乎会
我们基于 Sitecore 6.6.0 (rev. 120918) 的网站可以在 http 和 https 上运行。我们还有一项安全要求,即无论网站是否通过 http 访问,都使所有 cookie 都
在仅具有 https 绑定(bind)的 IIS 网站中,我转到 SSL 设置: 将 RequireSSL 设置为 true 或 false 有什么区别? 最佳答案 从这里(http://weblog
我已在 web.config 中将 httpCookies requireSSL 值设置为 true,并在本地计算机上运行 Web 应用程序,而不运行 https。除了当我尝试读取 Request.C
我正在尝试将我们的 asp.net 网站配置为使用 SSL,这是我在 web.config 中所做的配置部分的片段 第 1 部分 第 2 部分 我使用 IIS EXPRESS 来托管我的
我使用这段取自 MVC futures 的代码,并将 Attribute RequireSsl 附加到一个操作。它适用于简单的 Url,如 http://localhost/de/Account/Lo
我们的安全团队要求所有 cookie 都设置为 Secure=true。 要为 MVC AntiForgery 设置安全属性,我们使用以下代码: protected void Applicat
我正在 ASP.NET 中的 MVC 框架上工作,我试图访问该应用程序,但我无法通过登录屏幕,之后它一直抛出未找到的 IIS 错误。解决方法后,我发现我的 httpCookies httpOnlyCo
我们有一个托管并配置为使用 ADFS 2.0 进行 SSO 的网站。当我通过 https 浏览网站时,出现以下错误。 我认为原因是负载均衡器通过 http 访问 Web 服务器。如果我更改 web.c
我发现 requireSSL="true" 有问题不安全服务器(无 SSL)中的属性(property) web.config UAT 中的代码行 - . 对于 CSRF(跨站请求伪造)修复,我们使
我是一名优秀的程序员,十分优秀!