use*_*726 6 c# iis web-hosting asp.net-core
我在IIS上运行ASP .NET Core dll(使用AspNetCoreModule)
使用以前的ASP .NET,我可以获得用户身份名称:
HttpContext.Current.User.Identity.Name
Run Code Online (Sandbox Code Playgroud)
因为它是在IIS上下文中直接调用的.
使用ASP .NET Core,结果为null:
this.Request.User.Identity.Name
Run Code Online (Sandbox Code Playgroud)
似乎IIS没有转发它,或者我的AspNetCore模块可能没有收到它.我如何收到用户身份名称?
我解决了这个问题。我是这样调试的:
由于我不确定用户凭据是否从 IIS 传递,因此我决定将请求 HTTP 标头从代码打印到日志文件。答案就在那里。我发现 IIS 可以使用基本身份验证。
AspNetCore 似乎不支持基本身份验证,因此我添加了一个中间件实现,用于解析“Authorization”标头中的信息并从中创建新的用户身份。
我自己实现了,但以下文章对我帮助很大:
https://blog.dangl.me/archive/http-basic-authentication-in-aspnet-core-projects/
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/middleware
| 归档时间: |
|
| 查看次数: |
2647 次 |
| 最近记录: |