PRB: 移动窗体身份验证和不同的 Web 应用程序

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

310415
本文已归档。它按“原样”提供,并且不再更新。
症状
您在使用移动窗体身份验证时请求未被重定向到 loginUrl 属性中指定的页。
原因
移动窗体身份验证基于 ASP.NET 窗体身份验证平台。当多个 Web 应用程序具有相同的 cookie 名称键,使用移动窗体身份验证时,便存在一个安全问题和 (或) cookie 路径。在这种情况下,则可能在一个应用程序中进行身份验证,并发出到其他应用程序的请求,而不被重定向到登录页进行身份验证。但是,授权规则仍然适用,这意味着即使在第二个应用程序 (即使但用户没有不明确登录) 上,将对用户进行身份验证,用户可能仍被拒绝对资源的访问因为配置。
解决方案
若要解决此问题,请使用下列方法之一:

方法 1

对该 <form>的 name 属性提供不同的值 Web.config 文件中的元素:

在应用程序 1 中的 Web.config:

<forms name=".ASPXAUTH" loginUrl="login.aspx" protection="All" >				
Web.config 中的应用程序 2:
<forms name=".ASPXAUTH2" loginUrl="login.aspx" protection="All" >				

方法 2

路径 属性的该 <form>提供不同的值 Web.config 文件中的元素:

在应用程序 1 中的 Web.config:

<forms name=".ASPXAUTH" loginUrl="login.aspx" protection="All" path="/app1" >				
Web.config 中的应用程序 2:
<forms name=".ASPXAUTH" loginUrl="login.aspx" protection="All" path="/app2">				

方法 3

配置不同的密钥,为每个应用程序。添加一个 <machinekey> 元素在 Web.config 文件,然后设置值:
<machineKey validationKey="<validationKey>" decryptionKey="<decryptionKey>" validation="SHA1" />				
: 请在"更多信息"部分中,若要生成有效的验证和解密密钥文章。
状态
此行为是设计使然。
更多信息
有关更多的信息请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
312906如何: 以用于表单的身份验证使用 Visual C#.net 创建密钥
313091如何: 使用 Visual Basic.net 中表单的身份验证用于创建密钥
313116PRB: 窗体身份验证请求不定向到 loginUrl 页面

警告:本文已自动翻译

属性

文章 ID:310415 - 上次审阅时间:10/24/2013 08:04:49 - 修订版本: 1.0

  • Microsoft Mobile Internet Toolkit 1.0
  • kbnosurvey kbarchive kbmt kbconfig kbcookie kbnofix kbprb kbsectools kbsecurity kbweb KB310415 KbMtzh
反馈