我正在尝试使用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)
这给我留下了很多问题:
关于如何在.NET中使用自己的Kerberos令牌的任何评论?
| 归档时间: |
|
| 查看次数: |
2896 次 |
| 最近记录: |