今天为了重写权限验证这块需要重写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,然后很喜欢里面的绕来绕去,我相信,弄懂这里的东西,还是很好玩的。如果大家有什么更好的办法,请告诉我,谢谢。

如何手动让HttpRequestBase.IsAuthenticated 和 HttpContext.User.Identity.IsAuthenticated 为true.的更多相关文章

  1. httpContext.User.Identity.IsAuthenticated 总是为fasle

    验证一直通不过,不知道问题在哪里.这个坑应该只有我自己遇到,记录一下,问题在使用swagger验证的时候出现的(说的很轻松) 如图所示,在swaager文档中,添加认证功能,此时只要我们填下登陆时获取 ...

  2. if (user?.Identity?.IsAuthenticated ?? false)这几个问号分别都代表啥意思?

    if (user?.Identity?.IsAuthenticated ?? false)这几个问号分别都代表啥意思? 0 悬赏园豆:5 [已解决问题] 浏览: 229次 解决于 2018-05-16 ...

  3. HttpContext.Current.User.Identity.IsAuthenticated

    HttpContext.Current.User.Identity.IsAuthenticated=false; HttpContext.Current.User.Identity.Name==&qu ...

  4. if (HttpContext.Current.User.Identity.IsAuthenticated) 权限验证总是true

    将浏览器关闭重启. 注:该语句是判断用户是否经过验证.

  5. 配置使用EF6.0常见的一些问题及解决方案

    前言 最近做了个winform小项目,为方便快速开发,后台框架使用了ef6.0+sqlserver2008架构,遇到各种问题,真是伤脑筋.现将遇到问题和解决方案写下来,方便查阅 提示未注册,找不到驱动 ...

  6. Asp.net Mvc4 基于Authorize实现的模块权限验证方式

    在MVC中,我们可以通过在action或者controller上设置Authorize[Role="xxx"] 的方式来设置用户对action的访问权限.显然,这样并不能满足我们的 ...

  7. WCF - 序列化

    数据是信息的载体 在不同环境中有不同的类型 为保证处于不同平台的的应用能够正常的进行数据交互 必须采用一种双方都能理解的数据类型 XML无疑是最好的选择 但不是唯一的选择 例如JSON也是一种普遍认可 ...

  8. Asp.net Mvc4 基于Authorize实现的模块访问权限

    在MVC中,我们可以通过在action或者controller上设置Authorize[Role="xxx"] 的方式来设置用户对action的访问权限.显然,这样并不能满足我们的 ...

  9. 一文助您成为Java.Net双平台高手

    写在前面:本文乃标题党,不是月经贴,侧重于Web开发差异,或细节或概述,若有不对之处,还请各位读者本着友好互助的心态批评指正.由于博客园中.Neter较多(个人感觉),因此本文也可以作为.Neter到 ...

随机推荐

  1. android 虚线

    <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http: ...

  2. Centos7 改名问题

    先看这篇 深入理解Linux修改hostname http://www.cnblogs.com/kerrycode/p/3595724.html  我使用如下方法 http://www.linuxid ...

  3. android桌面快捷方式跳转到指定activity

    AndroidManifest.xml 应用主入口配置: <activity android:name="com.*.cust.contacts.MainActivity" ...

  4. 操作系统性能分析与优化V1.0

    操作系统性能分析与优化V1.0 : http://www.docin.com/p-759561760.html

  5. [转]安卓开发startservice 和bindservice详解

    原文 作者:aikongmeng 来源:安卓中文网 博主暗表:搜到此文,终于为我解惑,bindService并不会真正启动service,不会调用onStartCommand!还需要再bind之前st ...

  6. 网上收集的以及自己总结的iOS开发技巧

    Objective-C 1.让Xcode的控制台支持LLDB类型的打印 这有什么用? 怎么说尼,笔者认为这个还是比较有用滴,为什么有用尼? 因为在Xcode断点调试的时候, 在控制台输入 po sel ...

  7. Android之TextView文字绘制流程

    一:TextView的onDraw()方法: 1.第一句restartMarqueeIfNeeded()绘制字幕滚动. protected void onDraw(Canvas canvas) { r ...

  8. visual studio 2013 秘钥

    #visual studio 2013# 有效密钥:BWG7X-J98B3-W34RT-33B3R-JVYW9

  9. golang 图片处理,剪切,base64数据转换,文件存储

    本文主要介绍: 1. 图片文件的读写. 2. 图片在go缓存中如何与base64互相转换 3. 图片裁剪 本文中,为了方便查看,去掉所有错误判断 base64 -> file ddd, _ := ...

  10. java框架篇---spring IOC依赖注入

    spring依赖注入的方式有4种 构造方法注入 属性注入 工厂注入 注解注入 下面通过一个实例统一讲解: User.java package com.bjsxt.model; public class ...