如何在 ASP.NET MVC 4 中设置登录会话?

How to set the login session in ASP.NET MVC 4?

如何在 MVC 4 中手动设置登录会话?我有一种方法可以检查用户是否有效并且 returns 对客户端是真还是假,但是我如何设置会话以便具有 [Authorize] 属性的方法将允许该用户将来的请求?

    [AllowAnonymous]
    [HttpPost]
    public bool Login(string userName, string password)
    {
        var isUserValid = SecurityManager.IsUserValid(userName, password);
        if (isUserValid )
            FormsAuthentication.SetAuthCookie(userName, true); 

        return isUserValid ;
    }

好的,请检查您的 web.config 文件中的 FormAuthentication。示例:

<?xml version="1.0" encoding="utf-8"?>


<configuration>
  <configSections>
  </configSections>
  <connectionStrings>
        <add  name="EFDbContext"  connectionString="Data  Source=(localdb)\v11.0;Initial
              Catalog=SportsStore;Integrated Security=True"
              providerName="System.Data.SqlClient" />
  </connectionStrings>
  <appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <add key="Email.WriteAsFile" value="true"/>
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.5.1" />
    <httpRuntime targetFramework="4.5.1" />
    <globalization uiCulture="en-US" culture="en-US" />
    <authentication mode="Forms">
      <forms loginUrl="∼/Account/Login" timeout="2880" />
    </authentication>
  </system.web>
 </configuration>