iis 在前端捕获Windows用户凭据

ht4b089n  于 4个月前  发布在  Windows
关注(0)|答案(1)|浏览(35)

我有一个网站,调用API,前端网站由AD控制,用户将在他们的Windows凭据键,以获得访问该网站,该网站和API只供内部使用,在我的组织。
API接受所有请求,我不得不允许所有的头来克服preflight CORS问题。它的工作方式是网站将进行API调用,但因为这是服务器上的两个不同的网站,正在传递的用户是AppPool。我希望有一种方法来捕获用户登录的用户名,以便将其与请求一起传递。
我想知道我是否可以从Windows用户弹出窗口捕获该用户名?或者JavaScript前端的东西。

vh0rcniy

vh0rcniy1#

在我看来,我们不建议你从浏览器的弹出窗口中捕获js中的用户名。
当un-auth请求发送到服务器时会触发windows弹出窗口,在此期间,不会触发js,捕获用户输入不安全,可能包含风险。
如果你想获取用户名,一种可能的方法是从服务器端获取,并将其与响应一起发送给客户端js。
但根据您的描述,似乎您想根据用户名执行某些操作。
一种可能的方法是编写一个自定义中间件,以便在CORS中间件之前获取用户名。
关于如何从中间件获取,可以参考以下代码:

//put this middleware before the middleware which you want to check the user name 
app.Use(async (context, next) => {
    // Do work that can write to the Response.
    if (  context.User.Identity != null)
    {
        var username = context.User.Identity.Name;
    }
      await next.Invoke();
// Do logging or other work that doesn't write to the Response.

});

字符串
测试结果:
x1c 0d1x的数据

相关问题