【问题标题】:ASP.NET Core Authenticating Clients (Console/WPF)ASP.NET Core 身份验证客户端(控制台/WPF)
【发布时间】:2016-07-11 12:42:25
【问题描述】:
我已经广泛搜索了最新的 asp.net 核心中的身份验证工作(简单)解决方案。如果我错过了,如果有人已经提供了解决方案,我很抱歉,但问题来了:
我已经使用 Identity/EF CookieAuthentication 构建了一个 ASP.NET Core MVC/API 解决方案。有了这个,我可以在我的 MVC 中登录/注销并为用户设置声明/角色。
我有一个 WPF 客户端,我也想对其进行身份验证并连接到我的 API。到目前为止,我已经尝试使用 HttpClient 以与在 ASP.NET 中相同的方式登录 - 带有凭据的 SignInManager。但是我如何将这个 session/cookie/token 持久化到 wpf 客户端,以便将来的 HttpRequests 将通过内置的 Identity 进行身份验证?
【问题讨论】:
标签:
c#
asp.net-core
asp.net-identity
asp.net-core-mvc
dotnet-httpclient
【解决方案1】:
您是否尝试过派生自己的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;
}
}