asp.net mvc自定义会员制供应商-严格的登录缓存到一个应用程序中

 2023-02-17    378  

问题描述

我为ASP.NET MVC应用程序创建了自定义会员提供程序,并且它一切都适用于一件事:
登录到我的应用程序时,我也登录到我使用Visual Studio运行的所有其他ASP.NET MVC应用程序.我想从缓存中拔出这个数据,因为当我在其他应用程序中注销并尝试登录时,我被拒绝了.

在webconfig中,我添加了ApplicationName才能解决这个问题,但它不起作用:

asp.net mvc自定义会员制供应商-严格的登录缓存到一个应用程序中

<membership defaultProvider="SAMembershipProvider" userIsOnlineTimeWindow="15">
      <providers>
        <clear/>
        <add
          name="SAMembershipProvider"
          type="ShinyAnt.Membership.SAMembershipProvider, ShinyAnt"
          connectionStringName ="ShinyAntConnectionString"
          applicationName="MyApp"
          />
      </providers>
    </membership>

    <roleManager defaultProvider="SARoleProvider" enabled="true" cacheRolesInCookie="true">
      <providers>
        <clear/>
        <add
          name="SARoleProvider"
          type="ShinyAnt.Membership.SARoleProvider"
          connectionStringName ="ShinyAntConnectionString"
          applicationName="MyApp"
          />
      </providers>
    </roleManager>

有没有方法是我忘了实现处理这个问题的方法,或者它是别的东西吗?

推荐答案

对您来说可能有点迟到,但也许其他人到达此页面可能会发现这种有用的.

默认情况下,表单身份验证使用浏览器cookie来保存您的身份验证状态,并且它们被选中(并限制)到(和子)域级别(可能 http://localhost/在您的情况下?).

这意味着在”localhost”域根下运行的每个应用程序( http://localhost/app1 , http://localhost/app2 )可以访问相同的身份验证cookie.

您可以通过在web.config中指定每个应用程序的不同cookie名称来解决此问题,如上所述:

<authentication mode="Forms">
  <forms name="[cookie name]"></forms>
</authentication>

希望这有助于…

以上所述是小编给大家介绍的asp.net mvc自定义会员制供应商-严格的登录缓存到一个应用程序中,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/34119.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。