Dan*_*ell 3 asp.net forms-authentication
我正在使用VS 2010在本地计算机上进行一些开发,并在Cassini中运行我的开发代码,我还制作了相同代码的副本并将其部署到c:\ mp并在IIS7中设置了一个Web应用程序以指向此目录。
两个应用程序都指向不同的数据库。我通过http:// localhost / mp访问IIS
当我登录其中任何一个时,如果我已经登录,则会导致我从另一个注销。
我感觉这与我们正在使用的表单身份验证有关,并且可能会覆盖cookie,但是我还没有发现任何有用的东西。
表单身份验证设置如下所示
<authentication mode="Forms">
<forms name="MP" loginUrl="~/login.aspx" protection="All" timeout="20" path="/" slidingExpiration="true" cookieless="UseCookies" defaultUrl="~/Modules/Enquirer/Default.aspx" />
</authentication>
Run Code Online (Sandbox Code Playgroud)
我们还使用角色和成员资格提供者
<roleManager enabled="true" cacheRolesInCookie="true" defaultProvider="AspNetSqlRoleProvider">
<providers>
<clear />
<add name="AspNetSqlRoleProvider" connectionStringName="mpconnectionstring" applicationName="mp" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
<membership defaultProvider="AspNetSqlMembershipProvider" userIsOnlineTimeWindow="20" hashAlgorithmType="SHA1">
Run Code Online (Sandbox Code Playgroud)
尽管我不确定这是否会成为问题,但我们也都使用了inProc会话状态。
谁能说出为什么发生这种情况以及如何解决呢?
问题在于cookie,因为cookie保留记录的确认。
在web.config上更改Cookie的名称可能可以解决您的问题。因此,使用两个不同的Cookie后缀名称,根据两个不同的登录名来设置名称和域。
<authentication mode="Forms">
<forms ... name=".CookieSuffix" domain="yoururl.com" ... />
</authentication>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1227 次 |
| 最近记录: |