[高级实用]用forms验证的站点,如何只在登陆时用https,平时用http?
全站点用https的速度太慢,而且也没必要。俺想让用户登陆的时候用https协议验证一次,平时都用http,这样可以很好的保证安全性,且不影响速度。但是,forms验证的登陆地址是在web.config设的,如:
<forms name=".logincookie"
loginUrl="login.aspx" protection="All" timeout="20">
</forms>
请问各位大牛,如果要只在登陆时用到https,该怎么做?web。config文件又该如何修改呢?? --------------------编程问答-------------------- 这个只与应用服务器的配置有关,与使用那种语言没什么关系 --------------------编程问答-------------------- UP,俺对这样的回到很不满意。给个具体方案吧 --------------------编程问答-------------------- UP --------------------编程问答-------------------- 帮你up --------------------编程问答-------------------- 这个比较麻烦,不过楼主可以用二级域名的方式试试 --------------------编程问答-------------------- 我可以建几个虚拟目录代替二级域名,oldmoon认为呢? --------------------编程问答-------------------- up --------------------编程问答-------------------- 我们的登录页面是用于“单点登录”独立网站的。简单给你描述一下:
单点登录登录网站提供登录页面login.aspx,业务网站可以使用iframe方式把它嵌入自己的页面。
访问登录页面其实需要这样的url:login.aspx?ret=http://www.123.com/,也就是提供业务网站的首页地址。
用户登录后,单点登录网站会分配一个用户id号,然后将浏览器最外层页面转向首页。例如:http://www.123.com/?id=283728382372。
业务网站使用特定的webService到单点登录网站获得id所代表的对象。 --------------------编程问答-------------------- 这样的url:login.aspx --> 这样的url:https://www.pss.com/login.aspx --------------------编程问答-------------------- 我们没有试过把业务网站与pss合并的情况,把两个网站合并在一起来只能节省一、二百块钱成本。 --------------------编程问答-------------------- 问题是如何在现有form验证的基础上改呢?? --------------------编程问答-------------------- 都几个月了,还没有答案吗? --------------------编程问答-------------------- up下,期待中... --------------------编程问答-------------------- 在你的login.aspx页面的onload方法里,
if (!Request.IsSecureConnection)
{
//把FormsAuthentication.LoginUrl转换成https的
//然后重新定向
Response.Redirect(....);
}
同时参考
INFO: Help Secure Forms Authentication by Using Secure Sockets Layer (SSL)
http://support.microsoft.com/kb/813829 --------------------编程问答-------------------- 留印,等着看解决方法
好多钻石啊 --------------------编程问答-------------------- up --------------------编程问答-------------------- 同志们,俺又回来了!
一来就看到还有好多没结贴的,尤其是这个帖子,竟然被这么多大牛们关注,真是过意不去。
俺在codeproject上也找过一些case,下面能够帮上忙的,大伙可以参考一下哦。
http://www.codeproject.com/KB/web-security/WebPageSecurity_v2.aspx --------------------编程问答-------------------- 哦这么老的快2两年的帖子翻出来了呵呵。
我觉得其实你当初就当作两个不同域名的网站来设计就好。一个网站使用https方式获得了登录的passportId,然后它重定向到另外一个网站并且包含这个passportId,另外一个网站使用这个passportId重新获取用户信息并保存在cookie中。因此使用https的登录页面功能简单无需Form验证。 --------------------编程问答-------------------- 先把他们分开成两个网站进行设计吧。两个网站中的文件命名不要重复,将来再考虑没有有可能合并成一个网站(的不同目录)。 --------------------编程问答-------------------- 帮顶!~~ --------------------编程问答-------------------- 还没用到过。 --------------------编程问答--------------------
补充:.NET技术 , ASP.NET