我正在开发一个使用 Webmatrix 进行身份验证的 ASP.Net MVC 4 应用程序。我的 web.config 文件中有以下内容
<sessionState mode="SQLServer" cookieless="true" allowCustomSqlDatabase="true"
sqlConnectionString="Data Source=server;Initial Catalog=ASPState;Persist
Security Info=True;User ID=user;Password=password"
timeout="2880" sqlCommandTimeout="10" />
我可以看到正在填充 ASPState 数据库,但我仍然在 URL 中获取会话 ID。当我尝试通过 Chrome 访问它时,它会错误地告诉许多重定向。当我通过 IE 访问它时,即使我看到它重定向(尽管会话 ID 在 url 中),它仍然有效,但是当我尝试登录时出现以下错误:
无法序列化会话状态。在“StateServer”和“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许不可序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“自定义”模式下完成类似的序列化,则适用相同的限制。
我没有对 Webmatrix 进行任何自定义,这都是默认设置。我需要会话 ID 远离 URL 并使用数据库,就像我在web.config
文件中设置的一样