ASP.NET MVC 后台 + 微信小程序

2020-10-22 19:50发布

问题:
微信小程序与浏览器不同,微信小程序不存在cookie,服务端返回的cookie信息不会被小程序端存储,
于是换成了token验证,token携带用户信息,请求时放回token,然后后台解析。

现在有个问题:

记得在Spring MVC里面有个 httpservletrequest,提供开发者在方法注入前,增删改reques一些信息,请教一下,在ASP.NET MVC中,是否类似的东西,或者怎么在执行action之前,将token解析出来的信息传递给action

3条回答
姐就是有狂的资本
2楼-- · 2020-10-22 20:45

Authorize, AtionFilter 都是好用的.

查看更多
够拽才男人
3楼-- · 2020-10-22 20:51

暂时解决了,参考这篇博文 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

查看更多
神经病院院长
4楼-- · 2020-10-22 20:53

用的 C# Webrequest 实现。用 asp.net 复杂了。

查看更多
登录 后发表回答