Request.IsAuthenticated永远不会为真

凯兰·克鲁姆(Kehlan Krumme)

我已经HttpModule实现了一个实施方式,实施方式应该限制/courses/对我的网站目录的访问,但是它存在一个主要问题。

Request.IsAuthenticated一直都是false

这是代码:

using System;
using System.Web;

public class CourseAuthenticationModule : IHttpModule
{
    public void Dispose() { }

    public void Init(HttpApplication context)
    {
        context.BeginRequest += new EventHandler(BeginRequest);
    }

    public void BeginRequest(Object source, EventArgs e)
    {
        HttpApplication app = (HttpApplication)source;
        HttpContext context = app.Context;
        HttpRequest request = context.Request;
        HttpResponse response = context.Response;

        if (request.Path.ToLower().StartsWith("/courses/") 
            && !request.IsAuthenticated)

        {
            response.Redirect("/");
        }
    }
}

我不知道为什么会发生这种情况,但是访问目录条件总是会评估为这种情况true/courses/

编辑:

我在Web.Config中找到了这个。不确定是否相关。

<authentication mode="Forms">
  <forms loginUrl="userlogin.asp" name=".cc" protection="All" path="/" timeout="2880" slidingExpiration="true" />
</authentication>

难道我做错了什么?我怎样才能解决这个问题?

亚里士多德

将BeginRequest作为第一个事件还为时过早,无法询问用户是否已通过身份验证。

在这一点上,您可以简单地检查其是否通过直接读取cookie进行身份验证,如下所示:

string cookieName = FormsAuthentication.FormsCookieName;    
HttpCookie authCookie = Context.Request.Cookies[cookieName];

if (null == authCookie || FormsAuthentication.Decrypt(authCookie.Value) == null)
{
    // is not authenticated
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AJAX 成功函数永远不会为真

来自分类Dev

三元运算符条件永远不会为真,请尝试使用多行ajax请求

来自分类Dev

为什么光标永远不会为空?

来自分类Dev

C / C ++链表永远不会为空

来自分类Dev

CountDownTimer值永远不会为零

来自分类Dev

带有OpenCV的Numpy渐变永远不会为负

来自分类Dev

CoreData可选的多对多关系永远不会为零?

来自分类Dev

数组永远不会为空,但打字稿不知道

来自分类Dev

CoreData可选的多对多关系永远不会为零?

来自分类Dev

在目标c中将永远不会为bool执行代码

来自分类Dev

从PHP控制器使用request.post()调用python脚本永远不会返回。为什么?

来自分类Dev

Authorize和Request.IsAuthenticated之间的区别

来自分类Dev

Request.IsAuthenticated始终为false

来自分类Dev

Request.IsAuthenticated始终为True

来自分类Dev

为什么(!(feof(sp))&& end)永远不会评估为真?

来自分类Dev

为什么(!(feof(sp))&& end)永远不会评估为真?

来自分类Dev

为什么这个 js IF 条件永远不会评估为真?

来自分类Dev

[FromBody] 会不会总是将我从永远不会为空的参数中拯救出来?

来自分类Dev

C:使用strtol endptr永远不会为NULL,无法检查值是否仅为整数?

来自分类Dev

自定义单元永远不会为零(不要使用情节提要)

来自分类Dev

Libgdx Scene2d进度栏永远不会为空

来自分类Dev

Websocket @OnMessage永远不会为二进制消息触发文本

来自分类Dev

有没有办法使CSS calc()永远不会为负值?

来自分类Dev

自定义单元永远不会为零(不要使用情节提要)

来自分类Dev

为什么$(someElement).height()永远不会为我正确计算高度?

来自分类Dev

永远不会为 Typings 文件生成 Javascript 文件。(*.d.ts)

来自分类Dev

BrowserDriver 永远不会为每个 SERENITY CUCUMBER 场景重新启动

来自分类Dev

警告:编译器可以假设 'x' 的地址永远不会为 NULL

来自分类Dev

Asp.Net 5中的Request.IsAuthenticated函数

Related 相关文章

  1. 1

    AJAX 成功函数永远不会为真

  2. 2

    三元运算符条件永远不会为真,请尝试使用多行ajax请求

  3. 3

    为什么光标永远不会为空?

  4. 4

    C / C ++链表永远不会为空

  5. 5

    CountDownTimer值永远不会为零

  6. 6

    带有OpenCV的Numpy渐变永远不会为负

  7. 7

    CoreData可选的多对多关系永远不会为零?

  8. 8

    数组永远不会为空,但打字稿不知道

  9. 9

    CoreData可选的多对多关系永远不会为零?

  10. 10

    在目标c中将永远不会为bool执行代码

  11. 11

    从PHP控制器使用request.post()调用python脚本永远不会返回。为什么?

  12. 12

    Authorize和Request.IsAuthenticated之间的区别

  13. 13

    Request.IsAuthenticated始终为false

  14. 14

    Request.IsAuthenticated始终为True

  15. 15

    为什么(!(feof(sp))&& end)永远不会评估为真?

  16. 16

    为什么(!(feof(sp))&& end)永远不会评估为真?

  17. 17

    为什么这个 js IF 条件永远不会评估为真?

  18. 18

    [FromBody] 会不会总是将我从永远不会为空的参数中拯救出来?

  19. 19

    C:使用strtol endptr永远不会为NULL,无法检查值是否仅为整数?

  20. 20

    自定义单元永远不会为零(不要使用情节提要)

  21. 21

    Libgdx Scene2d进度栏永远不会为空

  22. 22

    Websocket @OnMessage永远不会为二进制消息触发文本

  23. 23

    有没有办法使CSS calc()永远不会为负值?

  24. 24

    自定义单元永远不会为零(不要使用情节提要)

  25. 25

    为什么$(someElement).height()永远不会为我正确计算高度?

  26. 26

    永远不会为 Typings 文件生成 Javascript 文件。(*.d.ts)

  27. 27

    BrowserDriver 永远不会为每个 SERENITY CUCUMBER 场景重新启动

  28. 28

    警告:编译器可以假设 'x' 的地址永远不会为 NULL

  29. 29

    Asp.Net 5中的Request.IsAuthenticated函数

热门标签

归档