当前位置: 首页 > 知识库问答 >
问题:

在同一个mvc应用程序中使用表单身份验证和Azure AD登录

连坚白
2023-03-14

我正在使用带有azure AD登录选项(OpenId身份验证)的mvc应用程序。我需要为管理员提供模拟选项。所以我决定对这个模拟登录使用表单身份验证。现在我的问题是在webconfig中启用表单身份验证会影响azure AD登录。一旦添加了表单身份验证,它将使用belo url连续显示重定向,http://localhost:9666/members/logon?ReturnUrl=/members/logonusingazure?returnUrl=/

web配置中用于表单身份验证的代码

<authentication mode="Forms">
      <forms loginUrl="~/members/logon" cookieless="UseCookies" name="MvcForumAuth" slidingExpiration="true" timeout="432000" />
    </authentication>

谢谢,Nagaraj M.

共有2个答案

益楷
2023-03-14

根据上面的Nan Yu建议,有时应用程序会在进入身份登录页面之前尝试进行Azure Ad/OpenId登录。我不知道为什么,但是配置表单身份验证似乎很好

<authentication mode="Forms">
      <forms loginUrl="~/Account/Login/" timeout="2880"/>
</authentication>
仲孙鸿飞
2023-03-14

表单身份验证是ASP身份验证框架的旧版本。NET的默认模板。NETMVC在最新版本的VisualStudio中实现了ASP。NET身份框架。

您可以尝试使用OWIN Cookie身份验证和ASP. NET身份来处理使用OpenIdConnect进行AzureAD身份验证的本地身份验证。

要使用asp.net标识,如果您使用个人帐户进行身份验证生成新的MVC项目,您可以看到启动类的自动生成代码,此外帐户控制器具有用于直接身份验证和外部登录(第三方)的登录操作)。

然后你可以使用ASP。Net OpenID连接OWIN中间件以从Azure Active Directory租户登录用户:

>

  • 安装Microsoft。奥文。安全NuGet中的OpenIdConnect库
  • 启动类中,设置OpenIdConnect管道:

    app.UseOpenIdConnectAuthentication(
      new OpenIdConnectAuthenticationOptions
      {
          ClientId = clientId,
          Authority = Authority,
          PostLogoutRedirectUri = postLogoutRedirectUri,
          RedirectUri = postLogoutRedirectUri,
          Notifications = new OpenIdConnectAuthenticationNotifications
          {
              AuthenticationFailed = context =>
              {
                  context.HandleResponse();
                  context.Response.Redirect("/Error?message=" + context.Exception.Message);
                  return Task.FromResult(0);
              }
          }
      });
    

    另外,需要设置

  •  类似资料:
    • 问题内容: 我想在我的Java应用程序中使用Windows NTLM认证来透明地认证Intranet用户。如果使用浏览器(单点登录),用户将不会注意到任何身份验证。 我发现了一些具有NTLM支持的库,但是不知道要使用哪个库: http://spnego.sourceforge.net/ http://sourceforge.net/projects/ntlmv2auth/ http://jcifs

    • 我的应用程序使用Auth0进行身份验证。用户输入用户名密码,Auth0返回一个令牌,我的应用程序使用该令牌调用我的后端。 我的应用程序也在后台使用第三方应用程序,这些第三方应用程序都有自己的身份验证。当用户登录到我的应用程序时,它还需要出去获取所有这些第三方应用程序的身份验证令牌。 例如,我的应用程序需要在沃森上使用一个API,该API使用不同的用户名密码进行身份验证。用户无法知道用户名密码是什么

    • 在控制台中写入函数:anonymousUser true[ROLE_ANONYMOUS] 并且应该是user1 true[ROLE_USER]user1

    • 本文向大家介绍asp.net mvc中Forms身份验证身份验证流程,包括了asp.net mvc中Forms身份验证身份验证流程的使用技巧和注意事项,需要的朋友参考一下 验证流程 一、用户登录 1、验证表单:ModelState.IsValid 2、验证用户名和密码:通过查询数据库验证 3、如果用户名和密码正确,则在客户端保存Cookie以保存用户登录状态:SetAuthCookie     1

    • 我有spring boot应用程序和thymeleaf。我正在使用spring security formLogin方法来实现安全性,现在我只需要为一些API添加JWT。 注意:如果我更改订单并使formLogin@订单(1)再次生效,但当然不会生效。 我也试着把它们像这样结合起来,现在两者都很好,但是如果JWT身份验证错误将返回formlogin thymeleaf错误页面,则异常处理的问题:

    • 问题内容: 当前,我的应用程序中只有一种身份验证机制,即使用LDAP进行身份验证和授权。我的安全配置如下所示 但是,在某些情况下,用户可能会带有可以从会话密钥服务器进行身份验证的会话令牌,而有效令牌会返回用户名,然后该用户名可用于从LDAP加载该用户的身份验证信息。因此,我的第二种身份验证机制应该首先发生,如果HTTP标头中存在会话令牌,则应执行令牌身份验证,然后进行ldap查找,如果不存在会话令