asp.net-mvc-4 - 我应该在哪里注入(inject)用户在 MVC4 中进行身份验证之前需要运行的代码

标签 asp.net-mvc-4 azure

在用户重定向到我的 MVC4 项目的身份验证部分之前,我需要运行几行代码。

我正在使用:

<modules>
  <add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
  <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
</modules>

<authorization>
  <deny users="?" />
</authorization>

这样做的原因是,如果尚未添加站点,我需要将其添加到 Azure ACS,并且我需要在将用户定向到 ACS 之前执行此操作。运行代码的最佳位置在哪里? (我需要访问它来自的 url,因为这就是需要提供给 ACS 的内容,所以我猜 global.asax 不是正确的位置。(假设它可以在没有请求传入的情况下启动)。

最佳答案

确实,即使在阅读您希望动态发现域的评论后,这也应该成为 Application_Start 事件的一部分。

您应该在某种文件中拥有所有域的有效列表 - 最有可能是 web.config。

出于性能和架构方面的原因,前往 Godaddy 购买新域名并将其指向您的网站似乎不太可能,您不能再执行 1 个步骤...将其放入配置中文件:)

(在答案中添加此内容以及基于评论...) - 您还可以添加私有(private)静态 Hashset<string>在 Global.asax 文件内和 Application_BeginRequest 上检查当前域是否已注册,如果没有,请注册。

这将为每个请求增加大约 0.001 毫秒的时间,所以这确实很小。

关于asp.net-mvc-4 - 我应该在哪里注入(inject)用户在 MVC4 中进行身份验证之前需要运行的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16788990/

相关文章:

asp.net-mvc-4 - MVC 4 捆绑 URL 而不是文件

asp.net - 如何在 MVC4 中将对象添加到缓存并从缓存中访问数据?

c# - 具有辅助角色的 Azure 服务总线主题和订阅

azure - 使用 az powershell 创建 Azure AD 应用程序

c# - 为什么我的 Azure Functions 显示 "Cannot bind parameter ' $return' to type IActionResult”消息?

azure - 如何使用 Internet 上的私有(private) IP 地址 ssh 到 Azure VM

c# - 无法从 ICollection 中删除最后一项

asp.net - 在mvc网站的base标签中设置url路径的不同方法

c# - 属性的值(日期时间)从ajax调用更改为mvc 4 Controller 方法

azure - 是否有推荐的方法来获取网络应用程序的实时数据?