1、Web.config配置上system.web节点下加入以下配置

<system.web>
<authentication mode="Forms">
<forms name=".wechat" loginUrl="url" timeout="30" protection="All" defaultUrl="/index.html" />
</authentication>
<httpCookies httpOnlyCookies="true" requireSSL="true" />
</system.web>

2、上代码

using Newtonsoft.Json;
using System;
using System.Security.Principal;
using System.Web;
using System.Web.Http;
using System.Web.Security; namespace KMHC.CTMS.DrugStore.Controllers
{
public class BaseApiController : ApiController
{
protected void SignIn(dynamic user)
{
if (user == null)
return;
var httpContext = HttpContext.Current; var version = 1;
var name = user.OpenId;
var now = DateTime.Now.ToLocalTime();
var expiration = now.Add(TimeSpan.FromDays(30));
var isPersistent = true;
var userData = JsonConvert.SerializeObject(user); var ticket = new FormsAuthenticationTicket(version, name, now, expiration, isPersistent, userData, FormsAuthentication.FormsCookiePath); var encryptedTicket = FormsAuthentication.Encrypt(ticket); var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket)
{
HttpOnly = true,
Secure = FormsAuthentication.RequireSSL,
Path = FormsAuthentication.FormsCookiePath
};
cookie.Expires = ticket.Expiration;
if (FormsAuthentication.CookieDomain != null)
{
cookie.Domain = FormsAuthentication.CookieDomain;
} var url = HttpContext.Current.Request.Url.ToString();
if (!string.IsNullOrEmpty(url) && url.StartsWith("https"))
{
cookie.Secure = true;
} httpContext.Response.Cookies.Add(cookie); httpContext.User = new GenericPrincipal(new FormsIdentity(ticket), new string[] { "Wechat" });
} protected string OpenId
{
get
{
return this.User.Identity.Name;
}
} protected bool IsAuthenticated
{
get
{
return this.User.Identity.IsAuthenticated;
}
} protected dynamic UserInfo {
get {
var identity = (FormsIdentity)HttpContext.Current.User.Identity;
var user = JsonConvert.DeserializeObject<dynamic>(identity.Ticket.UserData);
return user;
}
}
}
}

3、默认地址获取

//index.html  <forms name=".wechat" loginUrl="url" timeout="30" protection="All" defaultUrl="/index.html" />
var defaultUrl= FormsAuthentication.DefaultUrl;

  

最新文章

  1. VB.NET 注册表基本操作
  2. HTTPS的一些疑问解答
  3. 关于python文件操作
  4. mybatis 使用记录
  5. SPOJ #440. The Turtle&#180;s Shortest Path
  6. 让Apache支持ASP.NET
  7. Ubuntu下全命令行安装Android SDK
  8. JDK 和JRE的区别
  9. C#语言之“String.Split”的使用【转】
  10. HDU 2438 Turn the corner(三分查找)
  11. WPF 单个触发器、多个触发器、多条件触发器
  12. 前端之js
  13. 系统限制和选项limit(一)
  14. gcc 动态编译 动态库路径
  15. Python3基础 dict items 以元组的形式打印出字典的每一个项
  16. 在Docker中运行纸壳CMS并配置使用MySql
  17. Spring Mvc:用MultiPartFile上传单个文件,多个文件
  18. SEO之网站被惩罚
  19. Python2 读取表格类型文件
  20. qt study 元对象,属性和反射编程

热门文章

  1. PHP 位运算
  2. liunx centOS6.5安装jdk教程
  3. 利用axure软件实现app中的轮播图功能
  4. 【oracle入门】SQL的命令动词
  5. jmeter 测试MD5加密登录接口
  6. Navicat 连接MySQL时出现1251错误的解决方案
  7. js&#183;&#183;&#183;元素的属性
  8. 解题报告 『[NOI2003]逃学的小孩(树上操作)』
  9. css3的特性
  10. springAop注解式Demo