muk*_*uku 5 c# authentication kerberos
我正在尝试使用以下代码获取Kerberos票证:
public static byte[] GetToken(string username, string password, string domain)
{
using (var domainContext = new PrincipalContext(ContextType.Domain, domain))
{
string spn = UserPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, username).UserPrincipalName;
var provider = new KerberosSecurityTokenProvider(spn, TokenImpersonationLevel.Impersonation, new NetworkCredential(username, password, domain));
var token = provider.GetToken(TimeSpan.FromMinutes(1)) as KerberosRequestorSecurityToken;
return token.GetRequest();
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是provider.GetToken()方法引发SecurityTokenValidationException,并显示消息“提供的NetworkCredentials无法创建Kerberos凭据,有关详细信息,请参见内部异常”。内部异常显示为“不支持对在需要Kerberos多分支的用户帐户下运行的服务进行身份验证”。有什么想法吗?
我从此线程获得了代码,看来在这种情况下它起作用了:如何使用SSPI从Kerberos获取服务令牌
| 归档时间: |
|
| 查看次数: |
1649 次 |
| 最近记录: |