ASP.NET核心身份验证客户端(控制台/ WPF)

时间:2016-07-11 12:42:26

标签: c# asp.net-core asp.net-identity asp.net-core-mvc dotnet-httpclient

我已经远远地搜索了asp.net核心中的身份验证工作(简单)解决方案,这是最新的。如果我错过了,如果有人已经提供了解决方案,我很抱歉,但问题是:

我使用Identity / EF Coo​​kieAuthentication构建了一个ASP.NET Core MVC / API解决方案。有了这个,我可以登录/退出我的MVC并将声明/角色设置给用户。

我有一个WPF客户端,我也想要进行身份验证并连接到我的API。到目前为止,我尝试使用HttpClient以与在ASP.NET中相同的方式进行签名 - 带有凭据的SignInManager。但是,如何将此会话/ cookie /令牌持久保存到wpf客户端,以便将来的HttpRequests通过内置标识进行身份验证?

1 个答案:

答案 0 :(得分:0)

您是否尝试过推导自己的WebClient

public class MyClient : WebClient
{
    private readonly CookieContainer _container = new CookieContainer();

    protected override WebRequest GetWebRequest(Uri address)
    {
        HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
        if (request == null)
            throw new InvalidOperationException("request == null");
        request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
        request.CookieContainer = this._container;

        ... // Add Required Cookies Here?
        Uri target = new Uri("http://example.com");
        this._container.Add(new Cookie("_spc", "aefec0ba-dc10-23e5-46f1-6b6e50c8837e") { Domain = target.Host }); 

        return request;
    }
}