.net core 拦截API调用判断参数
2021-01-22 12:17
标签:href pos lse figure 信息 下一步 var cti top 因为需要判断票据是否超时的,超时的话则返回登录页。 GotoHome方法: 修改jquery.js的回调方法: .net core 拦截API调用判断参数 标签:href pos lse figure 信息 下一步 var cti top 原文地址:https://www.cnblogs.com/Lynnyin/p/14297014.htmlpublic void Configure((IApplicationBuilder app, IHostingEnvironment env)
{
//添加一个中间件
app.Use((context, next) =>
{
// context.Response.WriteAsync("this is test");
var resposeLen = context.Request;
try
{
//判断方法中是否有ticket参数,如果有则代表该操作需要判断ticket是否有效,过期
if (resposeLen.Form.Keys.Contains("ticket"))
{
string ticket = resposeLen.Form["ticket"].ToString();
Guid userGuid;//返回的用户ID
string s0;//返回的系统名称
DateTime dt;//返回的时间
if (TicketRingContext.Parse(ticket, out userGuid, out s0, out dt))
{
//一但正确获取到了ticket的创建时间及用户信息,则进行下一步的判断
int outTime =ServiceConfigurationHelper.GetServerValue("TicketTimeOut") ==null?0:int.Parse(ServiceConfigurationHelper.GetServerValue("TicketTimeOut"));
if ((System.DateTime.Now - dt).TotalMinutes > outTime&&outTime!=0)
{
//超时则改变请求方法,改为登录超时的方法。
context.Request.Path = "/api/AlarmInfo/GotoHome";
}
}
}
}
catch (Exception ex)
{
//异常则按照原来的顺序继续执行
return next();
}
return next();
});
}
[Route("GotoHome")]
[HttpPost]
public object GotoHome() {
return new {State=false,ErrorCode=1001,Message="登录超时",GotoUrl= ServiceConfigurationHelper.GetServerValue("Comp") };
}
return jQuery.ajax( jQuery.extend( {
url: url,
type: method,
dataType: type,
data: data,
success: function (data) {
//如果返回的参数满足所有条件,则代表是登录超时。
if (data.State != undefined && data.State == false && data.ErrorCode != undefined && data.ErrorCode == 1001) {
//判断当前页面是否是子页面(嵌入到Iframe里面的),如果是则提示登录失效,如果不是则直接跳转到首页。
if (top.location != self.location) {
// alert("登录失效,");
} else {
location.href = data.GotoUrl;
}
}
callback(data);
}
}, jQuery.isPlainObject( url ) && url ) );
文章标题:.net core 拦截API调用判断参数
文章链接:http://soscw.com/index.php/essay/45421.html