前言:
這幾天用webapi做後臺的數據接口,session一直爲null,之前跳過這個坑,今天這方面的業務的時候忘了咋解決的了,自己又弄了好久才解決。今天寫個博客記錄一下。
問題描述:
由於Net中的webapi是默認不開啓的,我們想要使用session必須配置session(別忘了解決跨域的問題,webapi中跨域也是要自己解決的)
解決辦法:
如果是前後臺分離的話必須進行配置跨域:
webapi中解決跨域的方法有2種:
①:在webconfig中配置(<system.webServer>節點下)這種方式有時候會出錯
代碼如下:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
②:
1.在NuGet裏下載Cors包(兩個都下載)
2.在Global文件裏重寫Init()
public override void Init()
{
this.PostAuthenticateRequest += (sender, e) => HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required);
base.Init();
}
3.在WebApiConfig文件裏配置:
var cors = new EnableCorsAttribute("*", "*", "*");
//config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
cors.SupportsCredentials = true;// 允許cookie發送,否則session不可用
config.EnableCors(cors);
到此爲止:問題解決!!
結尾:
分享:慢慢成長!!