jaf*_*ffa 13 c# asp.net asp.net-mvc restsharp
我希望能够在控制器上调用身份验证操作,如果成功,则将经过身份验证的用户详细信息存储在会话中.
但是,我不确定如何将请求保留在会话中,因为我正在使用RestSharp作为分离的客户端.我需要以某种方式在成功授权后从服务器获取密钥,然后对于每个将来的呼叫,检查密钥与存储在会话中的密钥.
如何确保RestSharp中的RestClient发送所有未来请求并正确设置cookie,以便在服务调用内,可以正确检索会话变量?
我一直在用HttpFactory查看cookie容器,但似乎没有任何关于此的文档.
Pet*_*orn 31
如果有人有类似的问题,请注意,上面是不是很需要一个简单的问题"存储在每个请求之后我的饼干".Jaffas方法可以实现,但您只需将CookieStore附加到RestClient并自动存储Cookie即可.我知道这不是每个人的解决方案,因为您可能只想存储专用的 cookie.另一方面,它使您的生活更容易测试REST客户端!(为了方便起见,我使用了Jaffas变量):
CookieContainer _cookieJar = new CookieContainer();
var client = new RestClient("http://<test-server>/letteron"); //test URL
client.CookieContainer = _cookieJar;
Run Code Online (Sandbox Code Playgroud)
我最终解决了这个问题.基本上创建一个cookie容器,然后将响应中的会话cookie添加到cookie容器中.然后,所有未来的请求都将包含此cookie.
var sessionCookie = response.Cookies.SingleOrDefault(x => x.Name == "ASP.NET_SessionId");
if (sessionCookie != null)
{
_cookieJar.Add(new Cookie(sessionCookie.Name, sessionCookie.Value, sessionCookie.Path, sessionCookie.Domain));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19258 次 |
| 最近记录: |