各位,好,求大家帮忙
我做了一个mvc5 的portal站点,里面使用了:
public class CheckLoginAttribute : ActionFilterAttribute, IAuthenticationFilter
{
public void OnAuthentication(AuthenticationContext filterContext)
{
//var user = filterContext.HttpContext.Session["AdminUser"];
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
var content = new ContentResult();
//解密获取加密的cookie里面的信息
var url = string.Format("{0}?returnUrl={1}", FormsAuthentication.LoginUrl, filterContext.HttpContext.Request.RawUrl);
content.Content = string.Format("alert('请先登录!');window.location.href='{0}';", url);
filterContext.Result = content;
}
}
}
拦截器进行身份拦截,在这个应用中,我通过
[CheckLogin]
public ActionResult Index()
{
return View();
}
这样可以拦截到,当登录后,就可以通过认证
而我另外的一个应用,要通过这个站点进行管理,另外的一个应用:
[CheckLogin]
public ActionResult Index()
{
ViewBag.UserName = System.Web.HttpContext.Current.User.Identity.Name;
comLog.Info(System.Web.HttpContext.Current.User.Identity.Name);
return View();
}
两个的webconfig都用了forms认证
<system.web>
<authentication mode="Forms">
<forms loginUrl="http://192.168.1.4:8090/Login/Logon" name=".iamshop"/>
</authentication>
结果在第二个应用中,怎么也拿不到用户,总是跳转到登录页面,求大家有没有解决办法,备注:第一个站点部署了一个站点端口:8090,另外的一个8091
就是想在8090上面登录,然后8091上面拿到用户登录信息后,通过CheckLoginAttribute的认证后正常展示。。。。谢谢