我已成功致电挑战并开始自动登录。但是,如果该应用托管在与用户所在的域不同的域中,则它将无法正常工作。我希望能够为用户提供一个不错的UX,并提供一个用于登录的屏幕,而不是挑战并弹出Windows对话框。
我已经做到了,但是我找不到如何使用Windows用户提供的用户名和密码对Windows Auth进行身份验证的方法。
编辑: 到目前为止,我正在使用身份服务器进行大部分工作。
我发现我可以执行以下操作:
var ctx = new PrincipalContext(ContextType.Domain);
bool success = ctx.ValidateCredentials(model.Username, model.Password);
但是,我对现在如何获取主体ID并通过正常的网络核心工作流程发出auth cookie等感到困惑。通常我会这样做:
await HttpContext.SignInAsync(user.SubjectId, user.Username, props);