1

これは、「このコンテキストではセッション状態を使用できません」というエラーです。

アマチュアプログラマーですが、Global.asaxでSessionを取得するにはどうすればよいですか?

これはGlobal.asaxの私のコードです

public class Global : System.Web.HttpApplication
{
    protected void FormsAuthentication_OnAuthenticate(Object sender, FormsAuthenticationEventArgs e)
    {
        if (FormsAuthentication.CookiesSupported == true)
        {
            if (Request.Cookies[FormsAuthentication.FormsCookieName] != null)
            {
                try
                {            
                    string Email = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value).Name;
                    string Roles = LoginVerification.GetUserRoles(Email);
                    string DisplayName = (string)Session["DisplayName"];
                    e.User = new System.Security.Principal.GenericPrincipal(
                    new System.Security.Principal.GenericIdentity(DisplayName, "Forms"), Roles.Split(';'));
                }
                catch (Exception)
                {

                }
            }
        }
    }

    protected void Application_Start(object sender, EventArgs e)
    {

    }

    protected void Session_Start(object sender, EventArgs e)
    {

    }

    protected void Application_BeginRequest(object sender, EventArgs e)
    {

    }

    protected void Application_AuthenticateRequest(object sender, EventArgs e)
    {

    }

    protected void Application_Error(object sender, EventArgs e)
    {

    }

    protected void Session_End(object sender, EventArgs e)
    {

    }

    protected void Application_End(object sender, EventArgs e)
    {

    }
}

私の質問に答えてくれてありがとう!:)

4

1 に答える 1

3

このコードは、AuthenticateRequestイベントハンドラーではなく、AcquireRequestStateイベントハンドラーに含める必要があると思います。

この段階でセッションが利用可能になるはずです

https://stackoverflow.com/a/9501213/1236044を参照してください

于 2013-02-28T12:05:17.437 に答える