我通过自定义filter来进行权限验证。希望第一次从数据库查询到角色能够写到缓存,还能记住用户。不知道该如何保存用户的登录状态呢,是用session还是cookie,具体又该怎么做?会有什么样的安全问题?希望有理想的解决方法的诸位给点意见。谢谢!asp.netmvc自定义filter权限验证

解决方案 »

  1.   

    如果你是说“记住密码”这个功能,让用户下次访问你的网站无需再输入验证信息,那么使用的是cookie。session只对当前会话有效,浏览器关闭了,就失效了。你新建一个asp.net mvc程序,带AccountController的,系统会自动为你产生“记住密码”的代码。你自己看下就是了。
      

  2.   

    保存用户帐号密码等信息,一般用cookie和Session,前者用于保存用户信息。不受关闭浏览器影响。后者用于不关闭浏览器情况下,不跨域的同一会话内传递值
      

  3.   

    原本想得到类似FormsAuthenticationTicket这样的建议,不需要依靠membership的自定义方式存储登录状态以及用户的角色。没得的比它更好的方式了,还是用FormsAuthenticationTicket存储吧!谢谢诸位的回复!
      

  4.   

    把用户名存储在FormsAuthenticationTicket里,然后存储到cookie里就行了啊,这样就可以使用系统的身份验证过滤器了。
      

  5.   

    保存用户登录信息一般用继承自IPrincipal 类的自定义类保存,登录成功设置 Authenticated = True 即可保存登录状态,如果还有其他信息需要保存添加自定义字段即可,然后将信息保存到cookie中在filter中读取cookie反序列化为你自定义类型即可,再调用登录方法即可
      

  6.   

    详细代码可参考 http://tech.ddvip.com/2009-03/1238061396112337_3.html 或者自己搜索一下