关于ASP和Razor的几个问题

时间:2012-09-26 05:51:41

标签: asp.net razor security httpresponse

我脑子里有一些东西,我想我会问这里的老兵。我正在使用Razor语法和WebMatrix创建一个网站。我正在实现一个用户登录系统。所以我的问题是:

  1. 在WebSecurity中,当生成令牌(用于创建新帐户或恢复密码等)时,此令牌是否为公钥?可以通过不安全的网络或电子邮件安全地通过电子邮件发送给用户。进一步加密此令牌是一种好的做法(或有用)吗?

  2. 我已将我的安全页面设置为不在网络浏览器上缓存,即用户在用他的密码登录后访问的页面。我认为这是必要的操作,因为当用户注销时,我不希望用户按下浏览器的后退按钮并再次查看受保护的页面。所以我将所有安全页面的到期时间设置如下:

    Response.Expires = -1;
    Response.Cache.SetNoServerCaching();
    Response.Cache.SetAllowResponseInBrowserHistory(false);
    Response.CacheControl = "no-cache";
    Response.Cache.SetNoStore();
    
  3. 我上面的问题是,如果我将页面设置为立即过期,浏览器不会缓存任何内容并在每次用户访问时重新加载页面,这是否意味着浏览器甚至不会缓存链接的样式表,脚本文件和图像?我已将图像设置为预加载,以便网站的演示顺利进行;即将到期的网页会导致这些图像和所有内容在每个页面上反复加载吗?

    感谢。

1 个答案:

答案 0 :(得分:1)

  1. 这不是“公共令牌”,因为任何能够访问该令牌的人都可以使用它来重置用户的密码并登录。所以它确实需要安全发送,并且重置链接应该要求SSL。

  2. 不,特定页面上缓存过期的设置不会影响其他内容的缓存。您可以使用IIS管理器或在web.config中设置静态内容的缓存策略/标头。