登录 Microsoft AD 后 Request.IsAuthenticated 始终为 false

2024-02-12

我有一个 ASP.NET 4.5.1 MVC/WebAPI 项目。它使用 SSO 针对 Microsoft 进行身份验证。成功登录 Microsoft 后,我​​的 HomeController 上仍然有 Request.IsAuthenticated。我注册到网络配置文件的网址是http://本地主机:58686/ http://localhost:58686/

现在,我有一个仅 MVC 的示例应用程序,该应用程序在登录后成功进行身份验证。我对代码进行了两次、三次检查,我的 mvc/Web Api 项目使用相同的startup.cs、相同的 Web 配置结构以及对 azure ad 门户的相同注册。但在这个特定的项目中,登录微软后,request.isauthentciated 始终为 false。但是,我从 SecurityTokenValidated 的上下文参数中获得了所有正确的声明。您知道为什么会发生这种情况吗?因为我将项目设置为MVC/WebAPI? 家庭控制器:

  public ActionResult Index()
        {
            //var y = HttpContext.User.Identity.IsAuthenticated;


           if (!Request.IsAuthenticated)
           {
                HttpContext.GetOwinContext().Authentication.Challenge(
                    new AuthenticationProperties { RedirectUri = System.Configuration.ConfigurationManager.AppSettings["redirectUrl"] },
                    OpenIdConnectAuthenticationDefaults.AuthenticationType);
            }

启动.cs

public void Configuration(IAppBuilder app)
        {
            app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

            app.UseOpenIdConnectAuthentication(
                new OpenIdConnectAuthenticationOptions
                {

                    ClientId = clientId,
                    Authority = authority,
                    RedirectUri = redirectUrl,
                    PostLogoutRedirectUri = redirectUrl,
                    Scope = OpenIdConnectScopes.OpenIdProfile, 
                    ResponseType = OpenIdConnectResponseTypes.IdToken,

                    TokenValidationParameters = new System.IdentityModel.Tokens.TokenValidationParameters() { ValidateIssuer = false },


                    Notifications = new OpenIdConnectAuthenticationNotifications
                    {
                        AuthenticationFailed = OnAuthenticationFailed,

                        RedirectToIdentityProvider = (context) =>
                        {
                            string appBaseUrl = context.Request.Scheme + "://" + context.Request.Host + context.Request.PathBase;
                            context.ProtocolMessage.RedirectUri = appBaseUrl + "/";
                            context.ProtocolMessage.PostLogoutRedirectUri = appBaseUrl;

                            return Task.FromResult(0);
                        },
                        SecurityTokenValidated = (context) =>
                        {

                            var identity = context.AuthenticationTicket.Identity;
                            return Task.FromResult(0);
                        }
                    }
                }
            );

谢谢您和亲切的问候!


当您处理时,Request.IsAuthenticated 始终为 FALSE<authentication mode="Forms">如果你处理的话总是 TRUE<authentication mode="Windows" />。请仔细检查您的 web.config 并删除此设置。之后,Request.IsAuthenticated 现在在您的 AzureAD 上受到保护。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

登录 Microsoft AD 后 Request.IsAuthenticated 始终为 false 的相关文章

随机推荐

  • 无法在android中连接websocket和wss

    我正在尝试使用 org java websocket client WebSocketClient API 在 android 中连接安全 websocket 连接 wss 但无法与 https 连接 然而它与 ws 这是我的代码 priv
  • 如何旋转 pyplot.table 中的列标题?

    我正在 matplotlib 中创建一个表 但表头是长字符串 表值是只有几位数字的数字 这给我留下了两个不好的选择 要么我的表格比必要的宽得多 要么我的标题重叠 为了解决这个问题 我想旋转表格标题 可能最多 90 度 换句话说 我想做thi
  • 使用存储过程作为业务逻辑层

    我工作的公司目前正在使用存储过程 在 MsSQL 服务器后端 作为其业务逻辑层 实际的业务逻辑 DLL 仅调用 sProcs 并基本上管理 UI 事件 数据绑定等 我认为设置有问题 尽管我不确定如何向同事解释 顺便说一句 该系统有效 我工作
  • Laravel 8 错误类“App\User”未找到

    我的 auth php 文件 providers gt users gt driver gt eloquent model gt App Models User class 用户控制器文件
  • 使用 python 带有自签名证书的 ssl

    我正在尝试使用我的自签名证书在 python 中构建一个简单的服务器 我使用 makecert 创建了 cer pfx pvk 文件 context ssl create default context ssl Purpose CLIENT
  • C++ 中的彩色输出

    有没有办法使用打印彩色输出iostream和Xcode 例如 我希望能够打印Hello World with Hello red World蓝色和 黄色的 我怎样才能做到这一点 您需要终端颜色代码 对于 Linux 如下 您的系统可能有所不
  • 使用 iTextSharp 阅读 PDF 时出现奇怪的字符

    我正在使用 iTextSharp 来阅读 PDF 文件 我尝试使用以下简单的代码阅读第一页中的全文 var pdfReader new PdfReader
  • 如何实现递归依赖于自身的反应式香蕉行为?

    我有一个行为 我想根据事件的发生和行为的当前值来更改其值 在下面的示例中 我有两个计数器 它们根据布尔行为是 True 还是 False 进行更新 事实上 这段代码崩溃了 lt
  • 什么是非法反射访问?

    Java 9 中存在很多关于非法反射访问的问题 我发现了很多关于解决错误消息的讨论 但我很想知道非法反射访问实际上是什么 所以我的问题是 什么定义了非法反射访问以及什么情况会触发警告 我认为它与 Java 9 中引入的封装原则有关 但我找不
  • GCM PhoneGap 插件 消息错误

    我正在使用phonegap在android上实现GCM 在我向设备发送消息之前 该过程运行良好 当我的设备收到该消息时 它会关闭 并显示我的应用程序出现内部错误的消息 该错误消息来自 dalvik VM 我仍在使用插件附带的演示应用程序进行
  • 使用 Python 删除文件中的括号和文本

    我有一个文本文件 其中包含如下内容 Cl1 Cl 0 21988 6 0 2500 0 15016 5 0 01587 14 Uani 1 2 d S T P O1 O 1 05820 17 0 2500 0 48327 16 0 0206
  • C# [匿名\通用] 对象到 byte[] 没有 BinaryFormatter [在 .NET 4.5 中]?

    BinaryFormatter效果很好 但不存在于 NET 4 5 的可移植类库中 我读到它是在 NET 4 6 Portable 中 我还没有证实这一点 因为当我在项目设置中更改为 4 6 时 我收到警告 消息 4 5 将自动成为目标 除
  • 为什么 Python 和 CUDA 不支持半精度复杂浮点运算?

    NumPY 有复杂64 https docs scipy org doc numpy user basics types html对应于两个float32 但它也有 float16 但没有 complex32 怎么会 我有涉及 FFT 的信
  • 为什么 Git 使用加密哈希函数?

    为什么 Git 使用SHA 1 http en wikipedia org wiki SHA 1 加密哈希函数 而不是更快的非加密哈希函数 相关问题 堆栈溢出问题为什么 Git 使用 SHA 1 作为版本号 https stackoverf
  • GitHub 从另一个存储库包含

    我是 github 的新手 我的机器上有一个 github 存储库 我想将另一个存储库 作为第三方 包含到我的存储库中 我相信我应该先做一个叉子 但如何将其包含在我的本地存储库中 我尝试过子模块但没有成功 Thanks git 子模块 ht
  • 如何管理 Perl 应用程序开发、构建和部署?

    我还没有想出一种令人满意的方法来管理 Perl 应用程序的开发 构建和部署 我想听听您如何解决这个问题和 或您希望在您现在没有的应用程序构建系统中拥有什么 请描述您的应用程序类型 它是一个 Web 应用程序 它是否在服务器上运行 或者您是否
  • webview中的字体没有改变

    Typeface hnr Typeface createFromAsset this getAssets HelveticaNeueLTStd Md otf html table tr td align left td tr table
  • 用于检测变量更改的 Java 事件侦听器

    我似乎无法在任何地方找到我的问题的答案 是否有任何事件侦听器可以检测布尔值或其他变量的变化 然后对其采取行动 或者是否可以创建自定义事件侦听器来检测这一点 请我似乎无法在任何地方找到解决方案 我发现这个网站 http www example
  • GroupLayout:值得学习吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对java 特别是swing 比较陌生 最近一直在制作一些相当简单的应用程序 边学习边学习 最新的有很多表单组件 例如 JLabels JTe
  • 登录 Microsoft AD 后 Request.IsAuthenticated 始终为 false

    我有一个 ASP NET 4 5 1 MVC WebAPI 项目 它使用 SSO 针对 Microsoft 进行身份验证 成功登录 Microsoft 后 我 的 HomeController 上仍然有 Request IsAuthenti