相信园子肯定有过这个方面经验的人,小弟希望各位多多指教。
首先。对于用户登陆,只是用了setauthorcookie方法可以么?用这个方法貌似也是可以登陆进去的。
但是,如果客户端刚巧有禁用cookie的情况,貌似就会出现一个大大的黄页。这个大黄页的错误应该如何捕捉?以及如何处理?
另外,可以对程序实现全控制器的异常处理么?比如找不到资源,或者路径不正确。这些都转移到一个自定义的稍微友好点的页面???
使用的MVC4。上面的问题各位大大有例子的也可以给个参考。网上有很多,但撞来撞去头都大了!
小弟初来咋到,200分全部家当送上!
在MVC里,有一个@htmlAntiForgeryToken()这个方法在客户端禁用cookies的时候会出现一个大大的黄页。请问这个错误该如何捕获以及处理呢?楼下三位大大的回答都不错。可以不考虑禁用cookies的情况,但也不能让那种大黄页显示出来吧
楼主你好。。在网上有很购物网站 比如说:京东,淘宝 等 都要用Cookie的 如果你把你的Cookie给禁用了。。你在添加购物车的时候 就有问题,如果客户端禁用Cookie ,用JS判断:
1.<script> 2. function CookieEnable() { 3. var result=false; 4. if(navigator.cookiesEnabled) return true; 5. 6. document.cookie = "testcookie=yes;"; 7. 8. var cookieSet = document.cookie; 9. 10. if (cookieSet.indexOf("testcookie=yes") > -1) result=true; 11. 12. document.cookie = ""; 13. 14. return result; 15.} 16. 17. if(!CookieEnable()){ 18. alert("对不起,您的浏览器的Cookie功能被禁用,请开启"); 19. } 20.</script>
很多网站都用的这种方式:
可以使用一哈 asp.net membership 这个机制在配置文件里面配置,但Membership是好。但有点麻烦、
如果网站出异常:用一些日志之类的 比如说Log4net. 然后写一个Html静态页面。
在WebConfig里面配置 当网站出错地跳转到该页面。
<configuration> <customerrors mode="remoteonly" defaultredirect="ErrorPage.aspx" /></configuration> <customerrors> 标记中的“defaultredirect”属性定义了在发生错误的情况下,用户将被重定向到的“默认”页面。或者,也可以根据响应的http代码状态,重定向到其它的页面来覆盖这个默认值。例如:重定向到一个特殊的“未找到文件”错误页面、“非法访问”错误页面、“服务器冲突”错误页面等等。 举例说明,以下的配置信息覆盖3个特定的http 状态代码,所有其它错误都返回到一个默认页面: <customErrors mode="RemoteOnly" defaultRedirect="404/404.html"> <error statusCode="500" redirect="404/404.html"></error> <error statusCode="404" redirect="404/404.html"></error> <error statusCode="403" redirect="404/404.html"></error> </customErrors>
很详细。我的补充问题,您可以帮下么?
@oh~do: <customErrors mode="on" defaultRedirect="xxx.html">
难道这个捕捉不到你的报错页面???
@在 水 一 方: 谢谢你们的回复,现在程序可以不出现那个大黄页了。嘿嘿!我只用了membership的setauthorcookie方法做登陆,但是用户的数据库是自己另外的表。也不知道这样做好不好。你都是怎么做的登陆呢
@oh~do: 我一般不用那个Membership的。。感觉麻烦,我一般在服务器上面有个SQLLite小型数据库 保存当前的登录的一些信息。。。
setauthorcookie是forms验证的一种,这需要结合你的使用环境来看待这个问题(可以了解下forms验证的使用场景与优缺点,参考这里http://www.cnblogs.com/youring2/archive/2011/07/17/2108639.html)
所有的异常都可以在Global文件中的application_error方法中进行监控、记录与处理(定义到特制的错误处理页面)
当然页面中也是可以配置的,有个配置节叫
<customErrors mode="RemoteOnly" defaultRedirect="xxx.html/>
没有这个方法,只有一个APP_START。能给我一个示例么?谢谢。关于那个ERROR的方法
@oh~do: 那你用配置文件的方式吧在webconfig当中定义,就没有你那个黄色的页面了
@az235: 谢谢您的回复,豆子已发