问题:
微信小程序与浏览器不同,微信小程序不存在cookie,服务端返回的cookie信息不会被小程序端存储,
于是换成了token验证,token携带用户信息,请求时放回token,然后后台解析。
现在有个问题:
记得在Spring MVC里面有个 httpservletrequest,提供开发者在方法注入前,增删改reques一些信息,请教一下,在ASP.NET MVC中,是否类似的东西,或者怎么在执行action之前,将token解析出来的信息传递给action
暂时解决了,参考这篇博文 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
Authorize, AtionFilter 都是好用的.
对权限验证以及过滤都实现了,现在想实现验证成功之后,把已经将解析了的token信息传递给action,希望能够自动注入到对应的参数里去
或者有什么办法在不使用cookie session的情况下,我能够得到用户信息
用的 C# Webrequest 实现。用 asp.net 复杂了。
项目已经用ASP.NET MVC实现了,再者,ASP.NET webApi更容易实现哦,比纯写Webrequest方便多了