OpenAuth.Net/OpenAuth.App/SSO/SSOController.cs

74 lines
2.3 KiB
C#
Raw Normal View History

2016-07-08 18:51:48 +08:00
// ***********************************************************************
// Assembly : OpenAuth.Mvc
// Author : Administrator
// Created : 09-22-2015
//
// Last Modified By : Administrator
// Last Modified On : 09-22-2015
// ***********************************************************************
// <copyright file="BaseController.cs" company="">
// Copyright (c) . All rights reserved.
// </copyright>
// <summary>
// 基础控制器
// 继承该控制器可以防止未登录查看
// 继承该控制器后如果想访问控制器中存在但模块配置里面没有的ActionHome/Git请使用AnonymousAttribute
// </summary>
// ***********************************************************************
2016-08-30 20:02:08 +08:00
using System;
2016-07-08 18:51:48 +08:00
using System.Web;
using System.Web.Mvc;
namespace OpenAuth.App.SSO
{
public class SSOController : Controller
{
public const string Token = "Token";
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
var token = "";
//Token by QueryString
var request = filterContext.HttpContext.Request;
if (request.QueryString[Token] != null)
{
token = request.QueryString[Token];
2016-08-30 20:02:08 +08:00
var cookie = new HttpCookie(Token, token)
{
Expires = DateTime.Now.AddDays(1)
};
filterContext.HttpContext.Response.Cookies.Add(cookie);
2016-07-08 18:51:48 +08:00
}
else if (request.Cookies[Token] != null) //从Cookie读取Token
{
token = request.Cookies[Token].Value;
}
if (string.IsNullOrEmpty(token))
{
//直接登录
2016-11-17 19:48:12 +08:00
filterContext.Result = LoginResult("");
2016-07-19 11:44:48 +08:00
return;
2016-07-08 18:51:48 +08:00
}
else
{
//验证
if (AuthUtil.CheckLogin(token, request.RawUrl) == false)
{
//会话丢失,跳转到登录页面
2016-11-17 19:48:12 +08:00
filterContext.Result = LoginResult("");
2016-07-19 11:44:48 +08:00
return;
2016-07-08 18:51:48 +08:00
}
}
base.OnActionExecuting(filterContext);
}
2016-11-17 19:48:12 +08:00
public virtual ActionResult LoginResult(string username)
2016-07-08 18:51:48 +08:00
{
return new RedirectResult("/Login/Index");
}
}
}