问题:
问题:
微信小程序与浏览器不同,微信小程序不存在cookie,服务端返回的cookie信息不会被小程序端存储,
于是换成了token验证,token携带用户信息,请求时放回token,然后后台解析。
现在有个问题:
记得在Spring MVC里面有个 httpservletrequest,提供开发者在方法注入前,增删改reques一些信息,请教一下,在ASP.NET MVC中,是否类似的东西,或者怎么在执行action之前,将token解析出来的信息传递给action
回答1:
暂时解决了,参考这篇博文 https://www.cnblogs.com/emrys5/p/asp-net-mvc-1.html
继承Controller,然后重载Controller的 OnActionExecuting 方法,代码如下:
public abstract class ControllerBase : Controller
{
public UserInfo UserInfo { get; set; }
/*
...其他代码实现...
*/
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (Request != null)
{
UserAgentType type = Verify.Macth(Request.UserAgent);
switch (type)
{
case UserAgentType.Mobile:
string token = Request.Headers["auth"];
if (!string.IsNullOrEmpty(token))
UserInfo = JWTHelper.GetInfo(token);
break;
case UserAgentType.PC:
break;
case UserAgentType.Other:
break;
default:
break;
}
}
base.OnActionExecuting(filterContext);
}
}
用的时候直接调用UserInfo, 这种实现太笨拙,应该考虑继承关系,另外就是这种方式实现不了参数注入,就像Java SpringMVC 的HttpSvrletRequest
回答2:
Authorize, AtionFilter 都是好用的.
回答3:
用的 C# Webrequest 实现。用 asp.net 复杂了。