我遇到了一个无法自行解决的问题。
我在虚拟机上运行了这个网站(ASP.NET)。该网站还可以......直到我弄清楚一件事......
这些应用程序在 Windows 8 的 IE 上不起作用,我不知道为什么。
这是错误的描述:
“此应用程序不支持无 cookie 表单身份验证”
系统确实使用 cookie 来保存用户数据。web.config 文件是这样设置的:
<sessionState cookieless="UseCookies" mode="StateServer"
sqlConnectionString="SessionState" timeout="45" />
角色管理器(系统也会在 cookie 上保留角色):
<roleManager enabled="true" defaultProvider="SCAProvider"
cookieRequireSSL="false" cacheRolesInCookie="true"
cookieTimeout="45" cookieProtection="All">
验证:
<authentication mode="Forms">
<forms name="AutenticacaoNFo" protection="All" requireSSL="false"
slidingExpiration="true" loginUrl="login.aspx" path="/"
timeout="45" />
</authentication>
这是发生问题的代码部分......根据stackTrace:
public void FormsAuthentication_OnAuthenticate(object sender,
FormsAuthenticationEventArgs args){
if (FormsAuthentication.CookiesSupported)
{
if (Request.Cookies[FormsAuthentication.FormsCookieName] != null)
{
try
{
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(
Request.Cookies[FormsAuthentication.FormsCookieName].Value);
args.User = new System.Security.Principal.GenericPrincipal(
new Samples.AspNet.Security.MyFormsIdentity(ticket),
new string[0]);
}
catch (Exception e)
{
// Decrypt method failed.
}
}
}
else
{
throw new HttpException("Cookieless Forms Authentication is not " +
"supported for this application.");
}
}
这可能是我错过的一件简单的事情......但我真的看不到错误......谢谢你的时间。
PS.:网站仍然可以在任何浏览器上正常运行,Windows 8 IE 除外。