zoukankan      html  css  js  c++  java
  • 如何手动让HttpRequestBase.IsAuthenticated 和 HttpContext.User.Identity.IsAuthenticated 为true.

    今天为了重写权限验证这块需要重写AuthorizeAttribute 这个属性,看了官方文档:HttpContextBase.User.Identity.IsAuthenticated 这个必须是true才能跑的通,我又去查如何让这个为true,后来进入了误区,准备重写IIdentity 和IPrincipal接口,但是很蛋疼的是需要重写: Application_PostAuthenticateRequest(在Global.asax),并且这种方式只是替换,还是需要验证HttpContextBase.User.Identity.IsAuthenticated是否为True, 而我概念里面其实很简单,肯定有一个接口或者一个管道设置一下就好,并不用去做什么配置,没那么麻烦,后来我又去研究了WebSecurity.Login 这个方法,这个其实蛮好玩的,不过需要重新设置这个: WebSecurity. InitializeDatabaseConnection(string connectionStringName, string userTableName, string userIdColumn, string userNameColumn, bool autoCreateTables);

    connectionStringName在wei.config里面能找到,就是那个defaultConnection.后面的自己配置。

    ok, 这个其实是一种解决方案,把你的数据库连接进来,然后就可以玩了,我个人也比较推荐这个,因为可以玩它自带很多功能。

    但是对于需要自己去包装业务的来说,想让HttpRequestBase.IsAuthenticated 和 HttpContext.User.Identity.IsAuthenticated 为true,还有一个办法:

     System.Web.Security.FormsAuthentication.RedirectFromLoginPage(model.UserName, true); 这样就好了,在判断用户登录是否成功以后调用这个,

    效果和上面的是一样,所以无论你是Form提交还是Ajax提交,这个都好使。

    我也刚刚开始研究ASP.NET MVC,然后很喜欢里面的绕来绕去,我相信,弄懂这里的东西,还是很好玩的。如果大家有什么更好的办法,请告诉我,谢谢。

  • 相关阅读:
    安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
    各种编程语言的深度学习库整理
    十个开源深度学习框架
    深度学习框架的评估与比较
    Caffe 深度学习框架上手教程
    机器视觉开源代码集合
    人工智能的妙用:谷歌公布图像字幕技术
    谷歌推出最新图像识别工具Google Cloud Vision API
    机器学习常见算法分类汇总
    神经网络的分类及其应用
  • 原文地址:https://www.cnblogs.com/guochenkai/p/4384619.html
Copyright © 2011-2022 走看看