Bhu*_*ake 3 c# asp.net session-variables asp.net-mvc-4
背景:
ASP.NET会话状态使您能够在用户在Web应用程序中导航ASP.NET页面时存储和检索用户的值.这适用于该应用程序但是当我们在该应用程序中引用了一个类库并且我们需要Session Variables在该库中时,我必须将它传递给每个方法,因为我没有使用依赖注入.
问题:
我有一个控制器,它进行Facebook身份验证如下:
public class FacebookController : Controller
{
private FacebookGateway FacebookGateway = new FacebookGateway();
// GET: /Facebook/
public ActionResult Index()
{
string code = Request.QueryString["code"];
TokenResponse tokenResponse = FacebookGateway.GetTokenResponse(code);
Session["AccessToken"] = tokenResponse.Access_token;
return View();
}
public ActionResult Friends()
{
string accessToken = Session["AccessToken"].ToString();
WebRequest request = WebRequest.Create(instanceUrl + @"profileUrl-Here");
request.Method = "GET";
request.Headers.Add("Some Header " + accessToken);
WebResponse response = request.GetResponse();
string str = String.Empty;
if (response == null)
{
}
else
{
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
str = sr.ReadToEnd().Trim();
}
//Convert str to Model
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
在这里,几乎每种方法我都需要访问令牌来从Facebook Graph API进行数据访问,但是,我必须每次从会话中获取它,如下所示
var accessToken = Session["AccessToken"].ToString();
Run Code Online (Sandbox Code Playgroud)
如何使控制器中的所有方法都可用?
有没有办法在不传递类库的HttpContext.Session每个方法调用的情况下共享MVC和类库之间的会话?
注意: 我已经看到了这个答案,但是在类库中它是如何可用的还不是很清楚.
| 归档时间: |
|
| 查看次数: |
9267 次 |
| 最近记录: |