问题标签 [mixed-authentication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
629 浏览

forms-authentication - Owin 挑战触发 DNN 的第二个意图

我为 DNN 创建了一个具有混合身份验证的自定义登录模块:1)通过 ADFS 进行身份验证。2) 使用常规表单身份验证进行身份验证。一切正常,除了:

第一次单击会重新加载页面,并且第二次总是有效。我试图禁用像这篇文章建议的表单身份验证,但因为我正在使用 DNN,所以我不能这样做。

我还测试了在 Page_Load 上触发事件并正常工作,但我想让 DNN 本地用户能够直接登录到 DNN(主机用户)......所以我也不能在那里进行挑战。

关于我应该怎么做才能使挑战在第一次点击时起作用的任何帮助?

提前致谢。

0 投票
0 回答
351 浏览

asp.net - ASP.NET 混合身份验证 IIS 8

我正在尝试创建一个将 Windows 身份验证与表单身份验证混合的应用程序。这个想法很简单:只要浏览器能够使用 NTLM 并且用户具有权限,那么他应该自动登录。如果没有发生这种情况,则必须将用户重定向到显示登录表单的页面。我找到了一篇旧文章(http://mvolo.com/iis-70-twolevel-authentication-with-forms-authentication-and-windows-authentication/),我还在网上找到了一个示例(https:// /github.com/patuww/P2000DemonstrationProjects/tree/master/MultiAuthExample)应该能够解决我的问题。

不幸的是,它不起作用,我想知道是否有更多关于此的信息。

谢谢。

路易斯

0 投票
1 回答
557 浏览

asp.net - 在 ASP.NET 中混合表单和 Windows 安全性

我在使用混合形式身份验证和 Windows 安全性时遇到问题。

我对IIS和安全性不太熟悉。我今天找到了这篇文章:

https://msdn.microsoft.com/en-us/library/ms972958.aspx#mixedsecurity_topic5

我首先通过向我的 web.config 文件添加身份验证模式开始:

上面的教程说我的 loginURL 应该是 WinLogin.aspx,我想这就是我的困惑开始的地方。

与上面的教程一样,它声明了以下内容:

我在 IIS 管理器中没有看到 WinLogin.aspx。

我的问题是,我是否需要在我的 IIS 管理器中创建一个站点并为我的项目创建一个 WinLogin.aspx 文件?

我正在使用 MVC,所以如果我将我的项目添加到 IIS,我是否对 WinLogin.aspx 执行相同的步骤,但对于我的登录控制器文件?登录控制器.cs ? 我对这个问题很困惑。

谢谢,

0 投票
1 回答
1501 浏览

c# - ASP.NET 表单身份验证和 Windows 身份验证

我已经开始研究使用 Windows 身份验证的表单身份验证(我相信它称为混合表单身份验证,但我可能而且可能错了)

到目前为止,我在 web.config 文件中发现我需要添加以下几行:

我已经做到了。但是下一部分让我感到困惑。我一直在阅读有关 WinLog 和 WebLog 页面的内容,其中一个必须是 Windows 身份验证,另一个必须是表单身份验证。

我的印象是流程应该这样

  1. 将上面的行添加到您的 web.config
  2. 将用户带到登录页面
  3. 用户从具有 Windows 身份验证的另一个项目重定向到他们填写的凭据,并且另一个项目发送响应说是或否。

web.config 之后的部分非常混乱,有人可以告诉我我是在正确的轨道上还是远离它?

我想要做的不是有一个丑陋的对话框,而是有一个自定义登录页面。

如果有人能指出我正确的方向,那就太好了。

0 投票
0 回答
1359 浏览

c# - ASP.NET 4.5 Web 表单混合身份验证(集成模式)

我正在尝试为我正在开发的 Intranet 站点实现以下场景:

  • 当用户在与网站同域的PC上登录并连接到与网站相同的网络时,访问内网站点时,他将自动登录(windows认证)
  • 当同一用户使用同一台PC登录与网站相同的域但在其他网络(例如家庭网络)作为网站时,他将自动登录(Windows身份验证)
  • 当同一用户从他/她的不属于域和网络的家用 PC 打开网站时,他将被重定向到表单身份验证登录页面,并且能够使用他/她的 AD 凭据登录(表单身份验证具有 AD 会员资格)
  • 当没有 AD 帐户且不在属于域的 PC 上的其他用户时,他将被重定向到表单身份验证登录页面并能够使用他/她的 SQL 用户凭据登录(带有 SQL 成员身份的表单身份验证)

除了 1 个重要步骤外,我几乎可以完成这项工作。我现在的代码是这样的:

全球.asax

WinLogin.aspx:

网页配置

IIS 中的设置

网站根级别

  • 启用匿名身份验证
  • 表单身份验证已启用
  • Windows 身份验证已启用

WebLogin.aspx 级别

  • 启用匿名身份验证
  • 表单身份验证已启用
  • Windows 身份验证已禁用

除了我定义是否可以使用 Windows 身份验证的部分之外,我的所有场景都有效。使用我现在的设置,只有本地网络中的 PC 将继续使用 Windows 身份验证。每当我在网络外使用我的电脑时,我都会看到表单身份验证登录屏幕。

有没有人建议我如何确定是否应该使用 Windows 身份验证。我一直在使用当前用户登录的用户名并检查它的域并使用它,但我似乎无法从网站的 IIS 设置中获得它。

提前致谢!

0 投票
1 回答
740 浏览

asp.net-mvc - 使用 Cookie 进行多站点身份验证

我有多个位于同一域中的 Intranet 站点,例如:

  • 测试站点/站点1
  • 测试站点/站点2

在这些应用程序中,我使用OWIN-Mixed身份验证。但是我找不到在一个站点中对用户进行身份验证并在其他站点中使用身份验证的方法。

有指南可以遵循吗?

0 投票
0 回答
99 浏览

owin - OWIN MixedAuth User.Identity.GetUserId 返回 null

我正在使用OWIN-MixedAuth对网站用户进行身份验证。在 Win10 机器上使用 VS2015 在本地运行它一切都很好。将其部署到 AD 域中的生产 Windows 2008 R2 服务器时,User.Identity 不是 ClaimsIdentity,它是缺少 NameIdentifier 声明的 WindowsIdentity,GetuserId 返回 null。

在 Startup.Auth.cs 我设置了以下 cookie 选项。登录路径指向此处推荐的“帐户/windowslogin” 。

任何想法为什么 IIS 7.5 在这里表现不同?

干杯伯恩德

0 投票
1 回答
828 浏览

c# - ADFS 用户用户映射到 asp.net Web 应用程序中的自定义用户

我们有一个使用表单身份验证和自定义数据库来对用户进行身份验证的 ASP.NET (4.5) Web 应用程序。我们的客户使用 ADFS Active Directory 联合服务并希望使用 ADFS 用户登录我们的 Web 应用程序。我需要弄清楚如何将这些 ADFS 用户映射到应用程序自己的数据库中的自定义用户。当用户尝试访问我的应用程序登录页面时,他们会被重定向到 ADFS 登录页面,并且一旦经过身份验证,就会返回我的登录页面以及一个对象,该对象可以访问有关经过身份验证的用户的一些信息,然后我需要将这些信息映射到用户在我们的网络应用程序中。我真的很感激可以在这种情况下使用的简单代码示例。特别需要有关用户/主要对象或其他内容的信息 s 传回来,我可以用它来唯一地标识一个用户,也可能是用户所属的一个组,而不是编写我的代码来从我们的数据库中获取用户。我真的不想让网络应用程序 ADFS 感知,但我追求一些简单的东西。这将适用于这种情况。

0 投票
0 回答
1259 浏览

asp.net-web-api - Web API(在 IIS 下)使用 Bearer Token 进行 Windows 身份验证

奇怪的是,这个简单的解决方案还没有实现,或者我不能谷歌它;p)(我从过去 5 天开始尝试)。我的要求:

  1. 从 Angular 应用程序(withCredentials = true)调用 URL 以查看它是否是 Windows 用户(挑战 NTLM)。(我可以根据访问它的 URL 用户来配置它)。如果它是有效的 Windows 用户并且我在 DB 中找到它们,我将返回承载令牌。
  2. 如果上述调用返回未经授权 (401),我会在我的 AngularJS (1.6) 客户端中向用户显示登录表单。用户提供非 Windows 用户名和密码,当用户单击登录时,从角度服务转到另一个 URL(用于获取承载令牌 - 标准 OWIN 东西)。

** 在上述任何情况下,我都会在我的客户端中存储承载令牌以进行任何进一步的 API 交互。

  • 我没有使用 ASP.NET 身份,但我有自己的 DAL 来验证来自 DB 的用户。
  • 我将拥有自己的自定义 Authorize (inherited) 属性(仅检查 Bearer Token)。
  • 我不希望用户在我的表单上输入 Windows 登录名并从 Active Directory 对他们进行身份验证。
  • 我不希望 Windows 用户单击任何单独的按钮来登录。(他们应该无缝登录 - 浏览器提示他们登录窗口)

我已经看过数百个帖子,但我无法确切地看到需要什么。混合身份验证需要基于 Cookie 或单独的 MVC 实现。(很多混乱)已经提到:

有人可以帮忙吗?

我可能不得不在明天晚上之前放弃这个:-(

0 投票
2 回答
222 浏览

iis - OWIN 混合身份验证 IIS 问题

我有一个需要 Windows 身份验证和表单登录的项目。我遇到了似乎符合我要求的OWIN 混合身份验证。

在实施到我自己的项目之前,我尝试从源链接运行示例解决方案。

我使用 IIS Express 调试了解决方案,当我在 Windows 身份验证对话框中输入我的凭据时,我在logonUserIdentity变量中找到了正确的凭据。

但是,当我设置本地 IIS 站点时,请按照自述文件中的说明设置以下功能委托属性:

当我在 Windows 身份验证对话框中输入我的凭据时,NT AUTHORITY\IUSR正在通过logonUserIdentity变量而不是我在对话框中输入的用户名。

我觉得发生这种情况是因为在 IIS 站点上启用了AllowAnonymous,但它需要停止由于类CookieAuthentication内而发生的登录循环Startup.Auth

我应该如何设置我的 IIS 站点,以便 Windows 凭据对话框通过输入的凭据而不是 NT AUTHORITY\IUSR。