在C#中使用Kerberos令牌

Nic*_*nes 5 .net c# kerberos

我正在尝试使用C在C#中直接使用Kerberos令牌KerberosSecurityTokenProvider。不幸的是,有关其使用的文档非常有限,我还没有取得太大的成功。我编写了以下示例测试应用程序:

var oProvider = new KerberosSecurityTokenProvider("MACHINENAME",TokenImpersonationLevel.Identification);
var oToken = (KerberosRequestorSecurityToken)oProvider.GetToken(TimeSpan.FromHours(1));

Console.WriteLine(oToken.ValidFrom);
Console.WriteLine(oToken.ValidTo);
Console.WriteLine(oToken.Id);

var abRequest = oToken.GetRequest();
var sId = oToken.Id;

try
{
    var oReceivedToken = new KerberosReceiverSecurityToken(abRequest, sId);
    var oAuthenticator = new KerberosSecurityTokenAuthenticator();

    var oCol = oAuthenticator.ValidateToken(oReceivedToken);
    foreach (var o in oCol)
    {
        Console.WriteLine(o.Id);
    }
}
catch(Exception e)
{
    Console.WriteLine(e);
}
Run Code Online (Sandbox Code Playgroud)

MACHINENAME我的机器名称在哪里。它成功获取了Kerberos令牌,但是当我尝试对其进行验证时,我得到:

System.IdentityModel.Tokens.SecurityTokenException: The AcceptSecurityContext failed. ---> System.ComponentModel.Win32Exception: The logon attempt failed 
Run Code Online (Sandbox Code Playgroud)

这给我留下了很多问题:

  • 这是在C#中获取/验证Kerberos令牌的正确方法吗?
  • 如果我只是想说要使用令牌进行识别,为什么要尝试执行登录?
  • 该错误是由于我的代码引起的,还是存在还需要解决的域配置问题?

关于如何在.NET中使用自己的Kerberos令牌的任何评论?