如何在控制台应用程序中使用AD FS令牌

时间:2016-05-19 20:26:02

标签: c# console-application

我有AD FS服务器,控制台应用程序和简单的网站,我可以使用我的域帐户登录。 在我的控制台应用程序中,我从STS获得令牌。现在,我想和他一起登录网站(我想要检查令牌)。

我应该如何在WebClient,WebApiClient和WCF中使用此令牌? 我在WCF中尝试使用此令牌和下载页面使用WebClient进行打开通道,但我得到了日志页面。

这个令牌在2个星期内很重要,我怎么能早点取消这个令牌呢?

这是获取令牌(工作)的代码:

string userName = "login";
string password = "pass";
string adfsAdr = @"https://domain/adfs/services/trust/13/usernamemixed";
string webPage = @"https://MyAspNetAppAdrs.com";

var factory = new Microsoft.IdentityModel.Protocols.WSTrust.WSTrustChannelFactory(
    new UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential),
    new EndpointAddress(adfsAdr));

factory.TrustVersion = TrustVersion.WSTrust13;
if (_factory.Credentials != null)
{
    factory.Credentials.UserName.UserName = userName;
    factory.Credentials.UserName.Password = password;
}

var rst = new RequestSecurityToken
{
    RequestType = WSTrust13Constants.RequestTypes.Issue,
    AppliesTo = new EndpointAddress(webPage),
    KeyType = WSTrust13Constants.KeyTypes.Bearer,
};

var channel = factory.CreateChannel();
SecurityToken token = channel.Issue(rst);

0 个答案:

没有答案