HttpContext用户名跨应用程序复制

时间:2014-07-03 15:42:47

标签: c# asp.net-mvc iis httpcontext authentication

所以我有一个问题。我有自己的CustomMembership类,几乎在我的所有MVC应用程序中使用,这个自定义类继承了“MembershipProvider”#39;。

每个应用程序都有自己的用户数据库,因此很少在各个应用程序中复制用户信息,除非每个应用程序都有帐户。无论如何,自从部署它们以来,我越来越意识到HttpContext正在通过IIS复制这些应用程序。我有两个主要问题:

  1. 有人会以' user1'的身份登录,但HttpContext会返回' user3'
  2. 的用户名
  3. 来自一个应用程序的用户上下文将位于缓存或会话中,或者其他任何内容,然后显示在另一个应用程序中。例如。我正要测试一个应用程序,它在获取用户角色时给了我一个例外,因为它搜索的用户名在这个应用程序中不存在,而另一个,并且出于某种原因正在作为当前上下文。
  4. 这令人困惑,我想知道我是否遗漏了某些东西或未能初始化某些东西。以下是我的Web配置用户身份验证部分的副本。

    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login" timeout="2880" />
    </authentication>
    <membership defaultProvider="CustomMembershipProvider">
      <providers>
        <clear />
        <add name="CustomMembershipProvider" type="HRUpdate.App_Data.CustomMembershipProvider" connectionStringName="HRpimEntities" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
        <!--<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/"/>-->
      </providers>
    </membership>
    <roleManager defaultProvider="MyRoleProvider" enabled="true" cacheRolesInCookie="true">
      <providers>
        <clear />
        <add name="MyRoleProvider" type="HRUpdate.App_Data.MyRoleProvider" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" writeExceptionsToEventLog="false" />
      </providers>
    </roleManager>
    

0 个答案:

没有答案