首页 新闻 会员 周边

MVC项目的登陆事宜

0
悬赏园豆:200 [已解决问题] 解决于 2012-11-22 09:21

    相信园子肯定有过这个方面经验的人,小弟希望各位多多指教。

    首先。对于用户登陆,只是用了setauthorcookie方法可以么?用这个方法貌似也是可以登陆进去的。

     但是,如果客户端刚巧有禁用cookie的情况,貌似就会出现一个大大的黄页。这个大黄页的错误应该如何捕捉?以及如何处理?

     另外,可以对程序实现全控制器的异常处理么?比如找不到资源,或者路径不正确。这些都转移到一个自定义的稍微友好点的页面???

     使用的MVC4。上面的问题各位大大有例子的也可以给个参考。网上有很多,但撞来撞去头都大了!

     小弟初来咋到,200分全部家当送上!

问题补充:

在MVC里,有一个@htmlAntiForgeryToken()这个方法在客户端禁用cookies的时候会出现一个大大的黄页。请问这个错误该如何捕获以及处理呢?楼下三位大大的回答都不错。可以不考虑禁用cookies的情况,但也不能让那种大黄页显示出来吧

oh~do的主页 oh~do | 初学一级 | 园豆:22
提问于:2012-11-16 14:31
< >
分享
最佳答案
0

楼主你好。。在网上有很购物网站 比如说:京东,淘宝 等  都要用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>


 

收获园豆:68
在 水 一 方 | 小虾三级 |园豆:1097 | 2012-11-16 15:36

很详细。我的补充问题,您可以帮下么?

oh~do | 园豆:22 (初学一级) | 2012-11-19 13:19

@oh~do: <customErrors mode="on" defaultRedirect="xxx.html">

难道这个捕捉不到你的报错页面???

在 水 一 方 | 园豆:1097 (小虾三级) | 2012-11-19 14:12

@在 水 一 方: 谢谢你们的回复,现在程序可以不出现那个大黄页了。嘿嘿!我只用了membership的setauthorcookie方法做登陆,但是用户的数据库是自己另外的表。也不知道这样做好不好。你都是怎么做的登陆呢

oh~do | 园豆:22 (初学一级) | 2012-11-22 09:23

@oh~do: 我一般不用那个Membership的。。感觉麻烦,我一般在服务器上面有个SQLLite小型数据库 保存当前的登录的一些信息。。。

在 水 一 方 | 园豆:1097 (小虾三级) | 2012-11-22 09:37
其他回答(1)
0

setauthorcookie是forms验证的一种,这需要结合你的使用环境来看待这个问题(可以了解下forms验证的使用场景与优缺点,参考这里http://www.cnblogs.com/youring2/archive/2011/07/17/2108639.html

所有的异常都可以在Global文件中的application_error方法中进行监控、记录与处理(定义到特制的错误处理页面)

收获园豆:67
az235 | 园豆:8483 (大侠五级) | 2012-11-16 14:36

当然页面中也是可以配置的,有个配置节叫

<customErrors mode="RemoteOnly" defaultRedirect="xxx.html/>
支持(0) 反对(0) az235 | 园豆:8483 (大侠五级) | 2012-11-16 17:31

没有这个方法,只有一个APP_START。能给我一个示例么?谢谢。关于那个ERROR的方法

支持(0) 反对(0) oh~do | 园豆:22 (初学一级) | 2012-11-19 13:17

@oh~do: 那你用配置文件的方式吧在webconfig当中定义,就没有你那个黄色的页面了

支持(0) 反对(0) az235 | 园豆:8483 (大侠五级) | 2012-11-19 13:36

@az235: 谢谢您的回复,豆子已发

支持(0) 反对(0) oh~do | 园豆:22 (初学一级) | 2012-11-22 09:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册