首页 新闻 会员 周边

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

0
[已解决问题] 解决于 2020-10-22 20:54

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

现在有个问题:

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

早服的主页 早服 | 菜鸟二级 | 园豆:208
提问于:2020-10-22 11:31
< >
分享
最佳答案
0

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

早服 | 菜鸟二级 |园豆:208 | 2020-10-22 16:34
其他回答(2)
0

Authorize, AtionFilter 都是好用的.

czd890 | 园豆:14412 (专家六级) | 2020-10-22 12:27

对权限验证以及过滤都实现了,现在想实现验证成功之后,把已经将解析了的token信息传递给action,希望能够自动注入到对应的参数里去

支持(0) 反对(0) 早服 | 园豆:208 (菜鸟二级) | 2020-10-22 14:27

或者有什么办法在不使用cookie session的情况下,我能够得到用户信息

支持(0) 反对(0) 早服 | 园豆:208 (菜鸟二级) | 2020-10-22 14:28
0

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

capital2012 | 园豆:265 (菜鸟二级) | 2020-10-22 20:52

项目已经用ASP.NET MVC实现了,再者,ASP.NET webApi更容易实现哦,比纯写Webrequest方便多了

支持(0) 反对(0) 早服 | 园豆:208 (菜鸟二级) | 2020-10-22 20:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册