小编Win*_*dow的帖子

ASP.NET Core 2.0 LDAP Active Directory身份验证

我从过去发现了很多信息,说LDAP身份验证尚未启用,但您可以使用第三方软件包解决这个问题. 但是,似乎在1月份实施了LDAP身份验证WAS .我似乎无法找到任何关于如何实现它的信息.

我已经在我的项目中设置了自定义身份验证,我只需要逻辑来填写HandleAuthenticateAsync方法.

我尝试过使用其他示例,但它们似乎不适用于.NET Core 2.0.

这是我能想到的唯一相关代码

protected override Task<AuthenticateResult> HandleAuthenticateAsync()
{
    // Get Authorization header value
    if (!Request.Headers.TryGetValue(HeaderNames.Authorization, out var authorization)) {
        return Task.FromResult(AuthenticateResult.Fail("Cannot read authorization header."));
    }

    // TODO: Authenticate user

    // Create authenticated user ticket
    var identities = new List<ClaimsIdentity> { new ClaimsIdentity("custom auth type") };
    var ticket = new AuthenticationTicket(new ClaimsPrincipal(identities), Options.Scheme);

    return Task.FromResult(AuthenticateResult.Success(ticket));

    // else User not authenticated
    return Task.FromResult(AuthenticateResult.Fail("Invalid auth key."));
}
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是,如何在.NET Core …

c# authentication ldap active-directory asp.net-core

33
推荐指数
2
解决办法
5万
查看次数

SSH.NET 公钥验证

我知道私钥身份验证有效,但是我正在寻找公钥身份验证。

我正在尝试使用 SSH.NET 和公钥建立连接。

在 Git Bash 终端中,我可以使用公钥很好地连接并运行命令,但是当我尝试使用 SSH.NET 连接到同一主机时,出现异常。

这是我尝试连接的方式:

using (var client = new SshClient("host.name.com", port, "username"))
{
    client.Connect(); // exception thrown here
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过这条路线:

var authMethod = new PrivateKeyAuthenticationMethod("username");
var info = new ConnectionInfo("host.name.com", port, "username", authMethod);
using (var client = new SshClient(info))
Run Code Online (Sandbox Code Playgroud)

两者都给出相同的例外:Permission denied (publickey).

似乎我需要指定我的公钥在哪里,或者我需要将我的公钥放在某个位置,但我找不到任何文档告诉我将其放在哪里。

c# ssh ssh.net

0
推荐指数
1
解决办法
1万
查看次数