- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个 ASP.NET MVC 站点,该站点具有受 Windows Azure ACS 保护的特定区域。我希望默认区域不 protected (即允许匿名用户),但仅保护子区域。
我通过从 Web.config 中的 system.web 部分删除授权元素来实现这一点。
<authorization>
<deny users="?" />
</authorization>
然后为所需的 MVC3 区域添加 protected 位置。
<location path="MyArea">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
但是,我用于访问 IClaimsIdentity 并从中提取属性进行处理的旧代码位于 Global.asax 的 Session_Start 事件中。现在,该站点不需要身份验证即可访问默认区域,因此无需进行身份验证即可发生 Session_Start。
我可以连接什么事件来处理 WIF 的身份验证事件?
我已经使用 SessionAuthenticationModule_SessionSecurityTokenReceived 实现了滑动 session 超时,并尝试在 OnPostAuthenticationRequest 事件上添加用户分析逻辑,但无济于事。
在首次连接到以下事件后,我能够获取用户:
FederatedAuthentication.ServiceConfigurationCreated
然后在这个事件中我连接到这个事件:
FederatedAuthentication.WSFederationAuthenticationModule.SignedIn
但是,在此事件中, session 为空,并且永远不会再次调用 session_start。因此,在重定向到身份提供商时, session 似乎被破坏了。
匿名 -> Application_start
匿名 -> Session_start
匿名 -> 导航至/MyArea
匿名 -> 重定向到 ACS -> 重定向到 idP
匿名 -> 登录
auth -> 重定向到/MyArea
发生 auth -> FederatedAuthentication.WSFederationAuthenticationModule.SignedIn,但 session 为空!
更新:我仍然没有找到 session 和身份验证同时存在的地方。我正在使用 Unity 来按需检测用户。如果有一个事件在发生时执行此操作,但我的工作仍然有效,我会很高兴。
最佳答案
根据您想要执行逻辑的时间和方式(登录后、创建 session token 时、接收 session token 后),您有几个选项。 SessionAuthenticationModule_SessionSecurityTokenReceived
事件应该可以正常工作,但订阅它可能会很棘手。您可以这样做:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
...
FederatedAuthentication.FederationConfigurationCreated += (s, e) =>
{
FederatedAuthentication.SessionAuthenticationModule.SessionSecurityTokenCreated += SessionAuthenticationModule_SessionSecurityTokenCreated;
FederatedAuthentication.SessionAuthenticationModule.SessionSecurityTokenReceived += SessionAuthenticationModule_SessionSecurityTokenReceived;
FederatedAuthentication.WSFederationAuthenticationModule.SessionSecurityTokenCreated += WSFederationAuthenticationModule_SessionSecurityTokenCreated;
FederatedAuthentication.WSFederationAuthenticationModule.SecurityTokenValidated += WSFederationAuthenticationModule_SecurityTokenValidated;
FederatedAuthentication.WSFederationAuthenticationModule.SecurityTokenReceived += WSFederationAuthenticationModule_SecurityTokenReceived;
FederatedAuthentication.WSFederationAuthenticationModule.SignedIn += WSFederationAuthenticationModule_SignedIn;
};
}
void SessionAuthenticationModule_SessionSecurityTokenReceived(object sender, SessionSecurityTokenReceivedEventArgs e)
{
Debugger.Break();
}
void SessionAuthenticationModule_SessionSecurityTokenCreated(object sender, SessionSecurityTokenCreatedEventArgs e)
{
Debugger.Break();
}
void WSFederationAuthenticationModule_SessionSecurityTokenCreated(object sender, SessionSecurityTokenCreatedEventArgs e)
{
Debugger.Break();
}
void WSFederationAuthenticationModule_SecurityTokenValidated(object sender, SecurityTokenValidatedEventArgs e)
{
Debugger.Break();
}
void WSFederationAuthenticationModule_SecurityTokenReceived(object sender, SecurityTokenReceivedEventArgs e)
{
Debugger.Break();
}
void WSFederationAuthenticationModule_SignedIn(object sender, EventArgs e)
{
Debugger.Break();
}
}
所有这些代码都位于 Global.asax 文件中,并且您希望在 FederationConfigurationCreated 事件引发后设置事件(此时 SessionAuthenticationModule 和 WSFederationAuthenticationModule 可用)。我在每个事件处理程序中添加了 Debugger.Break。将它们留在那里并调试您的应用程序以查看每个事件何时被触发。这将允许您决定何时何地添加逻辑。
关于asp.net-mvc-3 - session 开始后的 ACS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13939887/
谁能给我解释一下 AC-1、AC-2 和 AC-3 算法?我必须理解它们并用代码实现它们。但首先,我想很好地理解它们,但它们太难了,我无法理解。有什么帮助吗?顺便说一句,我对回溯不太熟悉,我试着阅读和
ACS.exe是什么进程? Acs.exe是Windows操作系统中的一个可执行文件(程序),文件的扩展名是.exe的表示是可执行。请务必运行那些您信任的可执行文件,因为可执行文件存在潜在的风险,
我将自定义 STS 用作 IDP,并使用 Azure ACS 和 WCF 服务作为 RP。 我在获取 ACS token 时收到以下错误 - ACS10002:处理 SOAP 正文时发生错误。 ACS
我试图理解这两种算法,但找不到它们之间的区别。 http://en.wikipedia.org/wiki/AC-3_algorithm 最佳答案 您说得对,两种算法都具有相同的迭代到定点结构。不同之处
即使我提供了正确的管理服务 key ,我也会收到错误 error ID 1113 The specified acs service namespace ' xyz 'and management k
Azure 培训套件包括一个名为“IntroToACS2”的实验室。您可以在其中创建一个 WebRole 并启用 ACS,以便您可以使用您的 Google、Live 或 Yahoo id 登录。本实验
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: How many styles of writing functions are there in C? 我
最近在看GSM音频编码的源码。这些代码是在 1992 年或之后编写的。 有一些奇怪的代码,例如: main P2((ac, av), int ac, char ** av) void Gsm_Code
我需要急性选择。我已经提到了这个enter link description here 添加所有这些依赖项后控制台出现错误 MainPage.html Error ac-options and ac
我有一个 ACS 命名空间,并设置了 WS-Federation 身份提供程序。由于我使用的是 Visual Studio 2012,因此我使用身份和访问工具来创建依赖方。该工具使用领域并返回我在创建
我一直在研究 Azure 访问控制服务 (ACS),它看起来特别擅长处理来自异构(可配置)身份提供商的身份验证。然后,它似乎支持许多其他场景(例如,参见 ACS How-To's )。 我的问题恰恰相
首先,让我陈述我的真正问题:我有调用 ACS 管理服务的代码,并且我希望我的集成测试能够同时运行,而无需每次测试运行击败其他人。也就是说,由于多人/构建服务器最终可能会同时运行这些测试,如果他们都使用
我知道有很多关于 Azure ACS 的问题,但我想问一个更普遍的问题: 我应该使用 ACS,还是不值得付出努力? :) 我想要的是 Azure 中的安全 WebService,它将从 2 个位置调用
我正在构建一个 Azure 托管的 WCF 服务,我希望使用存储在 SQL Server 数据库中的凭据通过 ACS 来保护该服务。我已经查看了一堆 ADFS2 示例,但尚未弄清楚如何做到这一点。我确
我正在基于 Thinktecture 代码实现我自己的身份提供程序。这是使用单点注销功能时 Azure ACS 的奇怪行为,它对于 google/live 和我自己的身份提供商有所不同。 注销 URL
简单的单点登录问题 我有两个 MVC4 应用程序: **1**- http://localhost/BikeShop ACS Relying Party: - Name: **Bik
简单的问题 - 我们是否可以使用 PowerShell(或其他命令行工具)以编程方式配置 ACS?看起来 PowerShell cmdlet 的旧 CodePlex 版本支持此功能,但后来的官方版本似
我正在使用 Azure ACS 并将其合并到我的 .NET 4.0 网站的 SSO 策略中。我在规则组页面上看到可以存储一堆不同的声明并将其传递回 RP(例如国家/地区、街道地址、电话等)。看起来您还
在我的代码下面但它不起作用 - 请参阅 this screenshot of the error during debugging , Cannot find local variable 'ac'
我已经使用以下方法解决了 CSP 问题: 运行 AC3 以减少可变域 使用简单的回溯寻找解决方案。 它对我所有的测试用例都运行得非常好而且速度很快,但是我的一个 friend 问我这个问题:“如果最初
我是一名优秀的程序员,十分优秀!