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

  • 相关阅读:
    [LuoguP2161] 会场预约
    [LuoguP1198] 最大数
    [LuoguP1484] 种树
    [LuoguP1801] 黑匣子
    [LuoguP1196]银河英雄传说
    [LuoguP1345] 奶牛的电信Telecowmunication
    [LuoguP1119]灾后重建
    【笔记】一元函数微分学
    【复习】Listening and Reading Comprehension
    【笔记】一元函数的不定积分
  • 原文地址:https://www.cnblogs.com/guochenkai/p/4384619.html
Copyright © 2020-2023  润新知