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,然后很喜欢里面的绕来绕去,我相信,弄懂这里的东西,还是很好玩的。如果大家有什么更好的办法,请告诉我,谢谢。

  • 相关阅读:
    问题——虚拟机连接,查本地DNS,查软件位置,payload生成,检测注册表变化
    nmap命令解释
    SMB扫描,SMTP扫描
    操作系统识别,SNMP扫描
    服务扫描——查询banner信息,服务识别
    nmap之扫描端口(附加hping3隐藏扫描)
    scapy简单用法——四层发现
    转载 界面组装器模式
    设计模式=外观模式
    如何进行自动化测试和手工测试
  • 原文地址:https://www.cnblogs.com/guochenkai/p/4384619.html
Copyright © 2011-2022 走看看