c# - .net framework 上的 startup 和 startup.auth 代码放在哪里(不是 .net core)

标签 c# asp.net .net asp.net-core

我有这个代码:

https://github.com/nbarbettini/SimpleTokenProvider/tree/master/test/SimpleTokenProvider.Test

这是用 .net CORE 完成的,它是一个带有 .net CORE 的 WEB API。

我需要实现具有相同安全性的 WEB API,但使用的是 .net 框架而不是 dot net core。

我需要将来自 Startup.cs、StartupAUth.cs、Program.cs 的代码放在使用 .net framework 4.5.2 的经典 asp.net web api 项目中的什么地方?

谢谢

最佳答案

在经典的 asp.net web 项目中,您可能会发现 Global.asax.cs 文件中的以下位置很有用:

1) Application_Start 方法在应用程序启动时调用一次,对于每次 Web 服务器回收只需要运行一个的配置代码很有用。

2) Application_AuthenticateRequest 方法为每个请求调用一次,可用于身份验证代码,但请注意它无法访问 session 状态。

3) Application_AcquireRequestState 方法在 Application_AuthenticateRequest 之后不久被调用,对于需要访问 session 状态的安全相关逻辑很有用。

这三个应该能够为您提供实现功能所需的 Hook 。但是,您将无法使用与在 asp.net core 中使用的代码相同的代码,因为这两个平台的体系结构和可用对象不同。因此,例如,Asp.Net Core 中的 HttpRequest 对象与完整框架 Asp.Net 中的 HttpRequest 对象是不同的对象(在不同的命名空间中定义)。

概念在很多情况下都是相似的(比如 HttpRequest),这有助于移植代码,但由于对象上的方法和属性并不相同,因此这将是一个移植练习。

关于c# - .net framework 上的 startup 和 startup.auth 代码放在哪里(不是 .net core),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43647697/

相关文章:

.net - 检测到不支持的可能对象循环(异步和等待)

c# - 基于数据类型的模型验证

c# - 我可以对 C# 中的两个不同事件使用相同的局部变量吗?

c# - 如何在控制流图中表达 Try/Catch?

c# - 我应该在哪里定义我的 NinjectModule 和我的工厂?

c# - 解决方案结构/最佳实践

c# - 获取 ScriptHandlerFactory 处理程序

c# - EF4 和数据库 View

c# - 每个 <% 的含义列表(<%#、<%= 等...)

c# - 如何使用 Socket.BeginReceive Overload 3?