Asp.net mvc MVC-从Web API访问会话
使用MVC 当然,在Web API中进行身份验证之后,我希望分配Asp.net mvc MVC-从Web API访问会话,asp.net-mvc,session,asp.net-web-api,Asp.net Mvc,Session,Asp.net Web Api,使用MVC 当然,在Web API中进行身份验证之后,我希望分配会话(“LoggedIn”)值True 但是我的Web API中的会话不断返回NullReference 有解决办法吗 谢谢。WebApiConfig.cs public static class WebApiConfig { public static string UrlPrefix { get { return "api"; } } public static strin
会话(“LoggedIn”)
值True
但是我的Web API中的会话不断返回NullReference
有解决办法吗
谢谢。WebApiConfig.cs
public static class WebApiConfig
{
public static string UrlPrefix { get { return "api"; } }
public static string UrlPrefixRelative { get { return "~/api"; } }
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: WebApiConfig.UrlPrefix + "/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
Global.asax.cs
public class MvcApplication : System.Web.HttpApplication
{
...
protected void Application_PostAuthorizeRequest()
{
if (IsWebApiRequest())
{
HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required);
}
}
private bool IsWebApiRequest()
{
return HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath.StartsWith(WebApiConfig.UrlPrefixRelative);
}
}
有关详细信息您需要设置支持HTTP请求所需的会话状态行为的类型 您可以在Global.asax文件中的应用程序\u PostAuthorizerRequest()中进行更改
using System.Web.Http;
using System.Web;
using System.Web.SessionState;
namespace Sample
{
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
WebApiConfig.Register(GlobalConfiguration.Configuration);
}
protected void Application_PostAuthorizeRequest()
{
HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required);
}
}
}
这肯定会对你有帮助。