asp.net-mvc – ASP.NET MVC – CustomeAuthorize使用外部网站对用户的loggin
发布时间:2020-05-23 22:20:03 所属栏目:asp.Net 来源:互联网
导读:我有一个CustomeAuthorize操作过滤器,如果用户未经过身份验证,则会将用户转发到登录页面.我将此过滤器应用于操作或控制器. [CustumeAuthorize]public ActionResult MyAction(){ //do something here return View();} 过滤器看起来像这样: public class Custo
|
我有一个CustomeAuthorize操作过滤器,如果用户未经过身份验证,则会将用户转发到登录页面.我将此过滤器应用于操作或控制器. [CustumeAuthorize]
public ActionResult MyAction()
{
//do something here
return View();
}
过滤器看起来像这样: public class CustomAuthorizeAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!currentUserIsAuthenticated)
{
filterContext.Result =
new RedirectToRouteResult(
new RouteValueDictionary{{ "controller","Account" },{ "action","SignIn" },{ "returnUrl",filterContext.HttpContext.Request.RawUrl }
});
}
else
{
base.OnActionExecuting(filterContext);
}
}
}
一旦我为filterContext.Result赋值,在执行过滤器完成后,执行(以某种方式?!)重定向到SignIn操作,MyAction不执行.这正是我想要的. 现在说我想改变我的CustomAuthorize来对外部网站进行身份验证,而不是我自己的SignIn操作,所以我做的是这样的: public class CustomAuthorizeAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!currentUserIsAuthenticated)
{
filterContext.HttpContext.Response.Redirect("http://externalSite.com/login?returnUrl=" + filterContext.HttpContext.Request.RawUrl);
}
else
{
base.OnActionExecuting(filterContext);
}
}
}
我的问题是,在完成第二版CustomAuthorize过滤器的执行后,继续执行MyAction,这不是我想要的!在这种情况下,如何在过滤后停止执行MyAction? – 更新 – 我刚刚遇到一个新问题.我的MVC应用程序在iFrame中,我希望Redirect在重定向后强制当前帧作为主帧,所以我做的事情如下: string url = "http://externalSite.com/login?returnUrl=" + filterContext.HttpContext.Request.RawUrl;
filterContext.HttpContext.Response.Write("<script type="text/javascript">ntop.location.href = "" + url + "";</script>");
有没有办法将javascript传递给RedirectResult()? 解决方法使用RedirectResult类似于之前使用RedirectToRouteResult的方式来替换过滤器上下文中的结果.filterContext.Result = new RedirectResult("http://externalSite.com/login?returnUrl=" + filterContext.HttpContext.Request.RawUrl ); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 有没有相当于PrimeFaces for ASP.NET的东西?
- asp-classic – 找出真正的文件类型
- asp.net-mvc-4 – 首先无法识别mvc代码中的“启用迁移”一词
- azure – 错误System.BadImageFormatException服务结构
- asp.net菜单控件在safari中无法正确呈现
- asp.net-web-api – 如何在HttpReponseMessage上设置响应co
- asp.net-mvc-2 – 如何在ASP.NET MVC中实现自定义主体和标识
- asp.net-mvc – POST操作方法中强类型的ViewModel仅包含空值
- 为什么在手动刷新响应时ASP.NET将使用Transfer-Encoding头替
- ASP.NET:存储应用程序设置的位置?
推荐文章
站长推荐
- iis-7 – 经典ASP发送错误到浏览器不能在IIS7上进
- ASP.NET应用程序配置IIS后,会出现错误
- asp.net-mvc-4 – 什么是antlr3,为什么默认情况下
- asp.net操作xml增删改示例分享
- Asp.Net会话在ashx文件中为null
- asp.net – HttpMethod和HttpRequest的RequestTy
- asp.net-mvc – ASP.NET MVC 5为隐藏输入渲染不同
- Asp.net Razor,语法错误 – onclick事件参数
- ASP.NET网站管理系统退出 清除浏览器缓存,Sessio
- asp.net-mvc-3 – 在IIS上运行时,ASP.NET Web应用
热点阅读
