ReactJS 和 .NET Core API 中的 windows 授权
Posted
技术标签:
【中文标题】ReactJS 和 .NET Core API 中的 windows 授权【英文标题】:windows Authorization in ReactJS and .NET Core API 【发布时间】:2018-07-03 23:17:56 【问题描述】:我们有一个新的应用程序,它使用 ReactJS 作为前端,后端是 .NET Core API。
一项要求是授权 Windows 登录用户使用 Active Directory。
.NET Core API 将执行授权部分。
我们在 .NET Core API 中使用了以下代码,但它返回了运行 .NET Core API 的 App-Pool 的 ID。我们尝试将 API 设置为启用 Windows 身份验证,但效果不佳。
dynamic userIdentity = WindowsIdentity.GetCurrent();
dynamic userPrincipal = new WindowsPrincipal(userIdentity);
string Admin = _configuration["AppUserRoles:Admin"];
result = userPrincipal.IsInRole(Admin);
我已将代码更改为以下内容:
dynamic userIdentity = WindowsIdentity("UserID");
dynamic userPrincipal = new WindowsPrincipal(userIdentity);
string Admin = _configuration["AppUserRoles:Admin"];
result = userPrincipal.IsInRole(Admin);
我们需要将 UserID 从 ReactJS 传递到 API 层。
在 ReactJS 中我尝试了以下方法:
var path = require('path');
var userName = process.env['USERPROFILE'].split(path.sep)[2];
var loginId = path.join("domainName",userName);
但这在 ReactJS 中不起作用。
有没有办法我们可以在 React JS 中获取 Windows 登录 ID 并将其传递给 API 层进行授权?
【问题讨论】:
也许看看helloJS?支持windows认证 【参考方案1】:我们能够通过以下方法完成这项工作:
在 IIS 下我们托管的网站如下:
添加了一个网站 ReactJSWeb。
我。在 ReactJS 网站下添加 .NETCore 虚拟目录。
主网站和虚拟目录都将身份验证设置为 启用 Windows 身份验证。
在.NET Core API - 身份验证模块中,我们在类上添加了一个属性[Authorize],并在方法中添加了以下代码:
使用 Microsoft.AspNetCore.Authorization;
dynamic userIdentity = WindowsIdentity(**User.Identity.Name**);
dynamic userPrincipal = new WindowsPrincipal(userIdentity);
string Admin = _configuration["AppUserRoles:Admin"];
result = userPrincipal.IsInRole(Admin);
这很有效,我们现在可以根据用户所属的 Active Directory 安全组正确地进行授权。
【讨论】:
第二。这对于阅读更多上下文非常有帮助 第二。对我来说同样的问题【参考方案2】:是否可以分享您按照该方法对客户端进行身份验证所做的工作?像你这样的类似场景让我快疯了......
我非常感谢。
【讨论】:
请不要使用答案部分来回答您的问题。你可以随时提问... 对不起!但是我想在这里做一些cmets(或问题),但我没有足够的积分来做那......对不起!以上是关于ReactJS 和 .NET Core API 中的 windows 授权的主要内容,如果未能解决你的问题,请参考以下文章
将 .Net Core Identity 和 OIDC 与多个 .Net Core Web API 结合使用
.NET Core 2 Web API JWT 令牌无法识别